Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Checkboxen vergleichen

Checkboxen vergleichen
Jörg-HH
Hallo zusammen
Paare von Checkboxen sollen verglichen werden. Die linke Kolonne von Boxen hat den Index 11, 21, 31 usw., die rechte 12, 22, 32 usw. Wenn die linke FALSE ist, kann die rechte nicht TRUE sein.
Ich dachte mir das so - aber die Bezeichnung ("chbBeilg" & i & (j + 1)) wird immer als nicht auffindbar bemeckert. - Was ist denn falsch an der Syntax?
Dim i As Byte
Dim j As Byte
For i = 1 To MAX_ANZ_BEILAGE
For j = 1 To 2
If uf_UmschlvBeilgAuswahl.Controls("chbBeilg" & i & j).Object.Value = False _
And uf_UmschlvBeilgAuswahl.Controls("chbBeilg" & i & (j + 1)).Object.Value = True Then
MsgBox "bubu"
End If
Next j
Next i
Grüße - Jörg

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Checkboxen vergleichen
01.09.2012 16:08:09
Hajo_Zi
Hallo Jörg,
warum Object? sind es Formularelemente?

AW: Checkboxen vergleichen
01.09.2012 16:19:31
Jörg-HH
Hallo Hajo
nee - ActiveX. Alle anderen Codeschnipsel, in denen ich die Dinger anspreche, funtionieren mir dieser Schreibweise. Nur hier, wo ich sowas wie (j+1) verwende, geht das nicht.
Jörg

AW: Checkboxen vergleichen
01.09.2012 16:31:10
Gerd
Hallo Jörg!
Dim i As Integer
For i = 10 To MAX_ANZ_BEILAGE * 10 Step 10
If uf_UmschlvBeilgAuswahl.Controls("chbBeilg" & (i + 1)) = False _
And uf_UmschlvBeilgAuswahl.Controls("chbBeilg" & (i + 2)) = True Then
MsgBox "bubu"
End If
Next i
'oder:
For i = 10 To MAX_ANZ_BEILAGE * 10 Step 10
If uf_UmschlvBeilgAuswahl.Controls("chbBeilg" & (i + 1)) = False Then uf_UmschlvBeilgAuswahl.Controls("chbBeilg" & (i + 2)) = False
Next i
Gruß Gerd

Anzeige
geht nich... / noch mehr Hinweise:
01.09.2012 16:47:06
Jörg-HH
Hi Gerd
die erste Variante ergibt die gleiche Meldung, die zweite ist nicht beabsichtigt.
Es handelt sich um zwei Kolonnen von ChBx auf einer UF. Vereinfacht gesagt, kann ich links eine Abfolge von Büchern anklicken, die ich sehen möchte, rechts deren Einbände. Hab ich links kein Buch ausgewählt, kann ich rechts auch dessen Umschlag nicht sehen.
Es handelt sich also bei der MsgBox im Prinzip um den Hinweis, daß man eine unmögliche Konstallation geklickt hat.
Jörg

AW: Checkboxen vergleichen
01.09.2012 23:40:36
Daniel
Hi
mach keine Checkboxen, sondern Optionbuttons, von denen du immer den linken und den rechten in der gleichen Zeile zu einer Gruppe zusammenfasst.
von Optionbuttons einer Gruppe kann immer nur einer aktiv sein, dh wenn du einen anderen Optionbutton der Gruppe aktivierst, wird der bisher aktive automatisch deaktiviert, so das du das von dir gewünschte Verhalten automatisch ohne Makrocode erhälst.
Gruß Daniel

Anzeige
das ist ja nicht Sinn der Sache..
02.09.2012 10:59:07
Jörg-HH
Hi Daniel
ich hatte noch ein paar Sätze dazu geschrieben. Es müssen natürlich auch beide true sein können. Es soll nur eine Warnmeldung erscheinen, wenn links false und rechts true. Selbst diese Konstellation ist denkbar, aber selten, und so sollen versehentliche Fehler vermieden werden.
Jörg

AW: Checkboxen vergleichen
02.09.2012 10:29:08
Gerd
Hallo Jörg,
überprüfe die Namen deiner Checkoxen.
Gruß Gerd

die Namen sind ok...
02.09.2012 11:00:30
Jörg-HH
...es gibt haufenweise Code, in denen diese Namen verwendet werdne, in Schleifen oder auch sonstwie.
Jörg

AW: Testen
02.09.2012 11:58:57
Gerd
Hallo Jörg,
ich kenne deine Datei nicht. Deine Fehlerbeschreibung ist auch nicht präzise.
Teste einfach mal:
Dim CTRL as Control
Debug.Print uf_UmschlvBeilgAuswahl.Caption
For each CTRL in uf_UmschlvBeilgAuswahl.Controls
Debug.Print "|" & CTRL.Name & "|"
Next
Gruß Gerd

Anzeige
Lösung gefunden...
02.09.2012 12:34:20
Jörg-HH
...und die ist eigtl ganz einfach. Es darf j nicht hochgezählt werden, denn dann entsteht chbBeilg13, und die Box gibt es nicht:
For i = 1 To MAX_ANZ_BEILAGE
For j = 1 To 1
If uf_UmschlvBeilgAuswahl.Controls("chbBeilg" & i & j).Object.Value = False _
And uf_UmschlvBeilgAuswahl.Controls("chbBeilg" & i & (j + 1)).Object.Value = True Then
Danke an alle fürs Mitdenken
Jörg

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige