Hi zusammen,
ich versuche stets meine Kenntnisse in VBA zu erweitern, jedoch stehe ich hier auf dem Schlauch und freue mich auf eure Beiträge.
Da ich purer Anfänger bin, habe ich das Problem wahrscheinlich nicht optimal beschrieben und auch nicht optimal gelöst. Ich hoffe trotzdem, dass das ganze Variablendurcheinander einigermaßen verständlich ist.
Ich weiß ehrlich gesagt nicht, ob es Sinn macht eine Vorlagedatei zu erstellen. Wenn es euch hilft, mache ich dies gerne.
Wenn Ihr Fragen habt oder ich spezifische Bereiche besser erklären müsste, lasst es mich gerne wissen. Wenn alles kompletter Bullshit ist versuche ich es nochmal neu und verständlicher zu schreiben xD
Wenn Ihr es bis hier hin geschafft habt, erstmal tausend Dank für eure Unterstützung!
Ich bin gespannt auf eure Antworten und wünsche euch ein angenehmes Wochenende!
Beste Grüße
Nils
ich versuche stets meine Kenntnisse in VBA zu erweitern, jedoch stehe ich hier auf dem Schlauch und freue mich auf eure Beiträge.
Da ich purer Anfänger bin, habe ich das Problem wahrscheinlich nicht optimal beschrieben und auch nicht optimal gelöst. Ich hoffe trotzdem, dass das ganze Variablendurcheinander einigermaßen verständlich ist.
Ich weiß ehrlich gesagt nicht, ob es Sinn macht eine Vorlagedatei zu erstellen. Wenn es euch hilft, mache ich dies gerne.
Wenn Ihr Fragen habt oder ich spezifische Bereiche besser erklären müsste, lasst es mich gerne wissen. Wenn alles kompletter Bullshit ist versuche ich es nochmal neu und verständlicher zu schreiben xD
Code:
Sub Userform_initialize()
Dim Faktor As Integer 'Anzahl der Positionen
Dim FaktorCheck As Integer 'Zählt wie viele Checkboxen es gibt
Dim Aktivieren As Integer 'While Schleife, um alle Checkboxen zu aktivieren
Dim PositionenAnlegen As Integer 'While Schleife, die bei jeder zusätzlichen Position, um einen hochgesetzt wird
Dim ZähleBisElf As Integer 'Um die 11 Checkboxen in einer Position anzusprechen
Dim PositionenAnlegenBisElf As Integer 'Um die jeweilige der 11 Checkboxen in einer Position anzusprechen
Faktor = PositionsAnzahl.Anzahl 'Je nachdem wie viele Positionen angelegt werden sollen (wird zuvor in UserForm PositionsAnzahl abgefragt) erscheinen so viele Positionen in der UserForm
FaktorCheck = 11 * Faktor 'Pro Position gibt es 11 Checkboxes, die alle deaktiviert sind (weshalb auch immer). Es ist möglich bis zu 50 Positionen zu erstellen also max. 550 Checkboxes
'Zur Info die Checkboxes sind vorher schon alle erzeugt worden (Top = 5000; Left = Haben alle Checkboxes gleich), da ich nicht weiß, wie man neue erstellt (Nachteil ist der Performanceverlust)
Aktivieren = 0
PositionenAnlegen = 1 'Eine Position wird immer angelegt (bzw. wurde schon angelegt)
ZähleBisElf = 1
PositionenAnlegenBisElf = 0
Do While Aktivieren < FaktorCheck 'Hier versuche ich alle genutzen Checkboxen zu aktivieren(Code fehlerhaft)
Me.Controls("CheckBox" & (Aktivieren)).Enabled = True
Aktivieren = Aktivieren + 1
Loop
Do While PositionenAnlegen < Faktor 'Hier versuche ich die jeweils 11 Checkboxen pro Position im Abstand von 15 (in der gewollten Anzahl = Faktor) untereinander zu anzusprechen und u verschieben. Wie gesagt eine Position wurde schon erzeugt, weshalb ich anfange die 12. Checkbox anzusprechen
Do While ZähleBisElf < 12
PositionenAnlegenBisElf = 12 * PositionenAnlegen + ZähleBisElf '12*1+1=12; 12*1+2=13; 12*1+3=14
Me.Controls("CheckBox" & (PositionenAnlegenBisElf)).Top = 30 + 15 * PositionenAnlegen 'verschiebt die Checkbox 15 unter den schon angelegten
ZähleBisElf = ZähleBisElf + 1
Loop
PositionenAnlegen = PositionenAnlegen + 1 'Nächste Position
ZähleBisElf = 1 'Um die andere While Schleife wieder zu aktivieren
Loop
'Beim durchlauf von PositionenAnlegen, wird eine weitere Position angelegt
' Bei der anderen while Schleife werden alle 11 Checkboxes angesprochen und verschoben, die im Nummernkreis passen (Bei 2 Pos -> Nummernkreis = 12-22; Bei 3 Pos -> Nummernkreis = 23-34 etc.
' Sobald der Nummernkreis abgearbeitet wurde wird aus der while Schleife raus gesprungen und evtl. die nächste Position angelegt.
' Wenn keine Position mehr angelegt werden soll wird automatisch aus der while Schleife gsprungen
With Positionen_Bearbeiten 'Das hier unten funktioniert sogar
.Height = 140 + 15 * Faktor
End With
With Positionen_Bearbeiten.CommandButton1
.Top = 70 + 15 * Faktor
End With
With Positionen_Bearbeiten.CommandButton2
.Top = 70 + 15 * Faktor
End With
End Sub
Wenn Ihr es bis hier hin geschafft habt, erstmal tausend Dank für eure Unterstützung!

Ich bin gespannt auf eure Antworten und wünsche euch ein angenehmes Wochenende!
Beste Grüße
Nils