Hallo zusammen,
ich möchte in Excel 2013 eine UserForm programmieren, bei dem unter anderem eine Reihe von CommandButtons eine Rolle spielt. Die Buttons sind in einer Matrix angeordnet; es gibt vier Spalten (Montag, Dienstag, Mittwoch, Donnerstag) und eine von bestimmten Faktoren abhängige Anzahl von Zeilen.
(1) Ich möchte die UserForm gerne so programmieren, dass sie beim Starten diese bestimmten Faktoren überprüft (das bekomme ich hin) und dann z.B. sechs Zeilen (und immer noch vier Spalten) erstellt, also 24 CommandButtons. Ist das überhaupt möglich?
(2) Selbst wenn (1) nicht geht, kann ich "von Hand" eine maximale Anzahl von CommandButtons erstellen. Ich nenne sie (in der Montags-Spalte) "ButtonMo1", "ButtonMo2", ... , "ButtonMo6", und dann in der Dienstags-Spalte "ButtonDi1" usw. Das alles, wie gesagt, von Hand, wenn (1) nicht geht. Aber: Jetzt möchte ich diesen Buttons in einer Schleife unterschiedliche (vorher ausgelesene) Captions hinzufügen:
For p = 0 To 3
For k = 1 To 6
zähler = k + p * 6
buttontag = "Mo"
If k = 2 Then buttontag = "Di"
If k = 3 Then buttontag = "Mi"
If k = 4 Then buttontag = "Do"
buttongesamt = "Button" & buttontag & p + 1
If angebot(zähler) <> "" Then buttongesamt.Caption = angebot(zähler) Else buttongesamt.Caption = ""
Next k
Next p
Problem: VBA mag dieses "buttongesamt" nicht. Wenn er in der langen Zeile das "Then" ausführen möchte, stört er sich an dem buttongesamt.Caption=angebot(zähler), weil "Objekt erforderlich". Wenn ich hingegen einfach nur
ButtonMo1.Caption = angebot(zähler)
schreibe, klappt's. Die Variable buttongesamt hat auch tatsächlich den Wert "ButtonMo1" (im ersten Schritt), daran liegt's also nicht. Hat da jemand eine Idee? Oder muss ich mehr Code schicken?
Danke für Eure Hilfe!
|