Moin Officer!
Also dieser Teil hier
Worksheets("Erfassung").Shapes.Item("Tag").ControlFormat.ListFillRange
legt für die Form mit dem Namen Tag , welche sich auf dem Blatt Erfassung befindet, fest, woher die Werte kommen, die angezeigt und ausgewählt werden können. Die Form könnte mE eine Listbox oder eine Combobox sein. Das geht mit ActiveX Elementen und den alten Shapes Elementen. Das
"'Data'!$D$2:$D$" + Format(maxDay, "00")
ist dann die Quelle der Daten die angezeigt werden. Das ist praktisch eine Range / Bereich auf dem Blatt Data. Beim zweiten Wert (der bis Wert der Range) fehlt allerdings die Zeilennummer. Die wird mit + Format(maxDay, "00") festgelegt.
Format(maxDay, "00") ist dabei einfach nur die Angabe, dass die Zahl zweistellig sein soll (also 01 statt 1 ). Das + verwirrt, hat aber die selber funktion wie &. Letztendlich weis man damit nur die Zeile des Bis Bereiches der Range zu,
Wenn maxDay also 9 ist wir der Bereich D2:D09 zugewiesen. Bei 11 wäre es dann D2:D11. Warum der Ersteller das genutzt hat weiß ich nicht. Wenn nämlich eine 3stellige Zahl auftaucht, wird die nicht auf 2 Stellen gestutzt sondern bleibt 3 stellig.
Die Zuweisung legst du damit übrigens für da Objekt fest. ALso wenn du dann in dem Bereich was änderst, wird das automatisch übernommen und braucht der Liste nicht extra hinzugefügt werden.
Warum das unten im Code steht kann man so nicht sagen. Vermtl. wurde es da erst benötigt. Müsste man den ganzen Code sehen. Vllt. waren aber auch erst zu diesem Zeitpunkt die Zellen in Daten dargestellt.
HOffe das ist vertändlich. VG
|