PDA

Vollständige Version anzeigen : Checkbox prüfen mit Schleifen


Fox-Jet
16.07.2014, 09:53
Hei Leute ich versuche die Einzelnen Checkboxnamen mit einer schleife zu überprüfen
z.B: die namen der Checkboxen wären "cb4, cb5, cb6..... usw." nun möchte ich diese mittels for schleife überprüfen ob sie angehäkt also True sind doch mein Code funzt iergendwie nicht.
Private Sub cmdklick_Click()
Dim x As Long
x = 4
For x = 4 To 8 Step 1
If Me.Controls("cb" & x).Value = True Then
Cells(x, 2).Copy Destination:=Cells(x, 8)
End If
Next x
End Sub

Doch leider funzt dass nicht, habe es auch schon so versucht:
Private Sub cmdklick_Click()
Dim x As Long
x = 4
For x = 4 To 8 Step 1
If OLEObjects("cb" & x).Value = True Then
Cells(x, 2).Copy Destination:=Cells(x, 8)
End If
Next x


Aber ich schaffe es einfach nicht den namen anzuspreche also "cb4" -> cb & x
und mittels Schleife wird x erhöht und somit überprüft er alle. Was machen ich falsch :boah: :entsetzt:
Versuche es schon seit 3 Tage !!!:streit:


Bitte dringenst um hilfe !!!

Mc Santa
16.07.2014, 10:04
Hallo,

was genau funktioniert bei dir nicht?
Ich habe eben eine Testdatei erstellt, dort läuft der Code durch und liefert ein Ergebnis.

Am besten lieferst du deine Beispieldatei, denn der Teufel steckt gerne mal im Detail ;)

VG

R J
16.07.2014, 10:08
Hi Fox,

Bsp.:
Dim oCB As MSForms.Control

For Each oCB In Me.Controls
If TypeOf oCB Is MSForms.CheckBox Then

If oCB.Value = True Then
'Dein Code...
End If

End If
Next

Fox-Jet
16.07.2014, 11:24
Hallo,

was genau funktioniert bei dir nicht?
Ich habe eben eine Testdatei erstellt, dort läuft der Code durch und liefert ein Ergebnis.

Am besten lieferst du deine Beispieldatei, denn der Teufel steckt gerne mal im Detail ;)

VG

Welchen Code hast du benutzt?
Den ersten oder zweiten ?

Die "Controls" mag er nicht :/
Hab es mit hochgeladen hoffe ihr könnt den fehler finden ....

Fox-Jet
16.07.2014, 11:40
Und hier funktioniert OLEObjects nicht .....

Mc Santa
16.07.2014, 12:05
Hallo,

deine Checkbox steht in der Tabelle selbst, nicht in einer UserForm.
Der Code lautet dann wie folgt:
If Worksheets("Tabelle1").OLEObjects("cb" & x).Object Then
'Alternativ auch:
'If Worksheets("Tabelle1").OLEObjects("cb" & x).Object.Value = True Then

Hilft dir das weiter?
VG

Fox-Jet
16.07.2014, 13:19
Hallo,

deine Checkbox steht in der Tabelle selbst, nicht in einer UserForm.
Der Code lautet dann wie folgt:
If Worksheets("Tabelle1").OLEObjects("cb" & x).Object Then
'Alternativ auch:
'If Worksheets("Tabelle1").OLEObjects("cb" & x).Object.Value = True Then

Hilft dir das weiter?
VG

So ich komme immer näher an mein Ziel :grins:
Jetzt funzt es so halb ^^ es kommt ein fehler, wenn ich auf debugg klicke seh ich was ihm nicht passt, jedoch kopiert er was ich angehakt habe ;)
Sprich bringen wir den fehler weg würde es funktionieren ;)

Kannst du mir noch sagen was jetzt nicht passt ?

Mfg Fox-Jet

Mc Santa
16.07.2014, 13:23
Hallo,

ich würde sagen, es liegt daran, dass du die CheckBoxen cb4 bis cb8 ansprechen willst, aber in deiner Tabelle gibt es nur cb4 und cb5.

Außerdem kannst du auf den Teil = True in deiner Abfrage verzichten.

VG

Fox-Jet
16.07.2014, 13:32
Okay, vielen vielen dank für deine Hilfe !

Echt TOP :winner: :happy: