Hallo Sebastian,
dein Formblatt ist kunstvoll, aber verkompliziert alle Maßnahmen! Severus hat ja bereits einige Probleme aufgelistet.
Ich gehe jetzt davon aus, dass alle Etiketten eines Blattes gleich sein sollen und sich 6 mal alle 10 Spalten und 16 mal alle 7 Zeilen wiederholen. Das vereinfacht zwar das Problem gegenüber meiner ersten Interpretation deiner Spezifikation erheblich, jedoch ist die Zuordnung der Plätze für die Logos aus deinen Bildern nicht eindeutig ableitbar. Ich beziehe mich im Folgenden nur auf das erste Etikett oben links. Sind meine Annahmen richtig?
Der Text ist auf die Felder B3 bis B6 begrenzt.
Logo 1 steht in der oberen linken Ecke von B2.
Logo 2 steht in der oberen rechten Ecke von B2.
Logo 3 steht in der oberen linken Ecke von D2.
Logo 4 steht in der oberen linken Ecke von F2.
Logo 6a oder Logo6b oder Logo6c stehen in der oberen linken Ecke von H2.
Die obere linke Ecke des Logos 5 ist die Mitte der Zelle D3.
Es sollen aus den Logos 1 bis 5 wahlweise keines oder eines oder mehrere ausgewählt werden.
Es sollen aus den Logos 6a bis 6c wahlweise keines oder eines oder mehrere ausgewählt werden.
Wenn dem so ist, würde ich eine UserForm erstellen mit Checkboxen für die Logos 1 bis 5 und OptionButtons für die Auswahl Logo 6a, Logo 6b, Logo 6c, kein Logo6.
Mit einem CommandButton wäre die Prüfung zu starten, ob diese Controls gesetzt sind oder nicht. Wenn sie gesetzt sind, würde ich für alle Controls nacheinander zwei For-Next-Schleifen für die Spalten und Zeilen durchlaufen lassen, um die Logos zu setzen, z.B.:
If controlbox1=true then
With ActiveSheet.Pictures.Insert("c:\logo1.jpg")
.Width = 8
.Height = 9.3
For j=2 to 107 step 7
For i=2 to 65 step 10
.Top = cells(j,i).Top
.Left = cells(j,i).Left
End With
Next i
End if
…
Für Logo 2 muss der Startpunkt (.Left) in der Zelle anders festgelegt werden:
.Left = cells(j,i).Left+ cells(j,i).width-8
Eigentlich ist das Programm ganz einfach zu schreiben. Es steht im Wesentlichen schon da. Die Zellbezeichnungen müssen hinsichtlich Zeile j und Spalte i zweckmäßig in den For-Next-Schleifen angepasst werden. Dass die Bezeichnungen der Controls und Logo-Adressen jeweils angepasst werden müssen, brauche ich nicht zu demonstrieren.
Ich hoffe, dir geholfen zu haben. Ich denke, dass du das Problem lösen kannst, würde mich aber über eine Rückäußerung freuen.
Gruß
Holger
|