Werbung von der Bank: „Legen Sie Ihr Geld in Immobilien an!“ – Prima Idee! Ich kaufe mir gleich am Montag mit meinem Ersparten ein Eigentumszelt.

Ich erstelle ein Add-In für eine Firma. Es soll eine große Liste per Knopfdruck in Einzelteile zerlegen und diese an bestimmten Stellen auf der Festplatte speichern.

Dazu benötige ich eine eindeutige Liste der Kategorien:

Ich überlege: da die Firma Excel 2016 einsetzt, hat sie noch nicht die Funktion EINDEUTIG. Also erzeuge ich per Programmierung eine Pivottabelle und erhalte so eine (sogar sortierte) Liste der einzelnen Kategorien:

Sub MachePivot()

    Dim xlBlattAktiv As Worksheet
    Dim xlBlattHilf As Worksheet
    Dim xlPivotCache As PivotCache
    Dim xlPivotTabelle As PivotTable
    Dim lngZeilen As Long
    Dim lngSpalten As Long
    
    Set xlBlattAktiv = ActiveSheet
    Set xlBlattHilf = ThisWorkbook.Worksheets.Add

    lngZeilen = xlBlattAktiv.Range("A1").CurrentRegion.Rows.Count
    lngSpalten = xlBlattAktiv.Range("A1").CurrentRegion.Columns.Count

    Set xlPivotCache = ThisWorkbook.PivotCaches.Create( _
        SourceType:=xlDatabase, _
        SourceData:=xlBlattAktiv.Name & "!R1C1:R" & lngZeilen & "C" & lngSpalten, _
        Version:=8)
    Set xlPivotTabelle = xlPivotCache.CreatePivotTable( _
        TableDestination:=xlBlattHilf.Range("A1"), _
        TableName:="RenesPivot2", _
        DefaultVersion:=8)
        
    xlPivotTabelle.ColumnGrand = False
    xlPivotTabelle.RowGrand = False
    
    With xlPivotTabelle.PivotFields("Kategorie")
        .Orientation = xlRowField
        .Position = 1
    End With

End Sub

Ich teste – und: padautz: Fehler!

Ich brauche eine Weile, bis ich die Ursache finde. In der Liste gab es zwei Mal eine Spalte mit der Bezeichnung „Kommentar“. Excel 2016 schafft es nicht, die Spalten für die Pivottabelle umzubenennen (wie neuere Excelversionen):

Also: dann grenzen wir den Bereich doch ein!

    Set xlPivotCache = ThisWorkbook.PivotCaches.Create( _
        SourceType:=xlDatabase, _
        SourceData:=xlBlattAktiv.Name & "!R1C1:R" & lngZeilen & "C4" , _
        Version:=8)

Geht doch:

Mut ist, wenn du morgens um 4 Uhr knallvoll nach Hause kommst, deine Frau mit dem Besen in der Ecke steht und du sie fragst: „Bist du am Putzen oder fliegst du noch weg?“

Ich habe bereits darüber geschrieben. Bill Jelen hat einen Artikel darüber geschrieben:

https:// www .youtube.com/watch?v=iaJv6E0GRC4

Auch auf der Seite von Microsoft ist zu lesen:

https: // support.microsoft.com/en-us/office/-spill-volatile-size-05aad07c-947e-4c9b-bd6f-7b1f8ae6a7dc?fbclid=IwAR3-mdf2DsQoMOTCOt5Z2m2i2ib5_rVYLikGthKeQllPdFZM94Bfbxz_2bc

Eben:

Dynamic array resizes may trigger additional calculation passes to ensure the spreadsheet is fully calculated. If the size of the array continues to change during these additional passes and does not stabilize, Excel will resolve the dynamic array as #SPILL!.

Nochmal langsam:

This error value is generally associated with the use of RAND, RANDARRAY, and RANDBETWEEN functions. Other volatile functions such as OFFSET, INDIRECT, and TODAY do not return different values on every calculation pass.

Ich probiere es aus: In einer Spalte stehen Zufallswerte:

=ZUFALLSBEREICH(„1.1.2020″;“31.12.2020“)

Die beiden Funktionen SORTIEREN und SORTIERENNACH funktionieren problemlos:

Jedoch erzeugen die beiden Funktionen FILTER und EINDEUTIG regelmäßig einen Fehler:

=FILTER(A3:A100;A3:A100>44000)
und
=EINDEUTIG(A3:A100)

Allerdings nicht immer:

Die Funktion ZUFALLSMATRIX, welche die Funktion ZUFALLSBEREICH in den Parametern min und max verwendet, bleibt erstaunlicherweise stabil:

=ZUFALLSMATRIX(5;5;MIN(A2:A100);MAX(A2:A100);WAHR)

Verwendet ZUFALLSMATRIX jedoch die Funktion ZUFALLSBEREICH in den Zeilen oder Spalten, ist #Überlauf ein häufiger Fehler:

=ZUFALLSMATRIX(M11;M12)
In M11 und M12 steht:
=ZUFALLSBEREICH(1;10)

Und schließlich kann auch die Funktion SEQUENZ nicht mit ZUFALLSBEREICH zusammen arbeiten:

=SEQUENZ(M11;M12)

Fazit: Finger weg von den neuen Arrayfunktionen im Zusammenhang mit den Zufallsfunktionen
ZUFALLSBEREICH
ZUFALLSZAHL
ZUFALLSMATRIX

Eben: Dynamic array resizes may trigger […] #SPILL!.

Sex zu haben, hilft das Gedächtnis fit zu halten. Ein schönes Neues Jahr 2012!

Ich habe mich über Mourad Louhas Kommentar zu den maschinell übersetzten Hilfetexten von Microsoft.

Wer schauen möchte:

https://techcommunity.microsoft.com/t5/deutsch/excel-eindeutig-online-hilfe-nicht-%C3%BCbersetze-terme-und-fehler-in/idi-p/1091294?fbclid=IwAR1-eJ9AQqa6t36yZT3tZhVKbtuoIKiZg-oNm_MVbVQdIfrvrSsW1fCC-x8#M868

Er spricht mir aus der Seele.