Herbers Excel-Forum - das Archiv

Frage zu Checkbox

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Frage zu Checkbox
von: Schneidrian

Geschrieben am: 27.12.2006 09:37:44

Die Datei https://www.herber.de/bbs/user/39195.xls wurde aus Datenschutzgründen gelöscht

Hallo zusammen,
Ich habe folgendes kleine Problem...
Ich will eine Checkbox automatisch befüllen lassen. Wenn ein Feld einen Eintrag enthält soll die Checkbox aus sein, wenn ein Eintrag drin steht soll sie an sein. Irgendwie kriege ich das nicht hin. Ist der Ansatz falsch?
Viele Grüße
Schneidrian
Bild

Betrifft: AW: Frage zu Checkbox
von: Schneidrian

Geschrieben am: 27.12.2006 09:40:57

Die Datei https://www.herber.de/bbs/user/39195.xls wurde aus Datenschutzgründen gelöscht

Sorry, hatte nen Tippfehler...
Hallo zusammen,
Ich habe folgendes kleine Problem...
Ich will eine Checkbox automatisch befüllen lassen. Wenn ein Feld keinen Eintrag enthält soll die Checkbox aus sein, wenn ein Eintrag drin steht soll sie an sein. Irgendwie kriege ich das nicht hin. Ist der Ansatz falsch?
Viele Grüße
Schneidrian
Bild

Betrifft: AW: Frage zu Checkbox
von: Luschi

Geschrieben am: 27.12.2006 10:08:31
Hallo Schneidrian,
solche Problemstellungen kann man nur mit reinem Vba-Code lösen, siehe Beispieldatei.
Zudem muß man beim klicken mit der Maus auf die Checkbox auch die Statusänderung verhindern:
https://www.herber.de/bbs/user/39196.xls
Gruß von Luschi
aus klein-Paris
Bild

Betrifft: AW: Frage zu Checkbox
von: Schneidrian
Geschrieben am: 27.12.2006 10:12:11
Herzlichen Dank Luschi!
Da hätte ich ja noch ne Ewigkeit grübeln können...
Ich wünsche dir noch ein gutes 2006 und nen guten Rutsch nach '07
Viele Grüße
Schneidrian
Bild

Betrifft: AW: Frage zu Checkbox
von: Schneidrian

Geschrieben am: 27.12.2006 10:36:20
Hallo Luschi,
Noch ne Frage...
Wie kann ich denn x-Boxen auf diese Art abfragen?
Ich komm hier auf keinen grünen Zweig... Hier mal mein Machwerk
Option Explicit
Dim ok As Boolean
Private Sub CheckBox2_Click()
ok = "" <> ActiveSheet.Range("A9").Value
Me.CheckBox2.Value = ok
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$9" Then
ok = "" <> Target.Value
Me.CheckBox2.Value = ok
End If
End Sub

Private Sub CheckBox1_Click()
ok = "" <> ActiveSheet.Range("A16").Value
Me.CheckBox1.Value = ok
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$16" Then
ok = "" <> Target.Value
Me.CheckBox1.Value = ok
End If
End Sub

Viele Grüße
Schneidrian
Bild

Betrifft: AW: Frage zu Checkbox
von: Oberschlumpf

Geschrieben am: 27.12.2006 10:50:31
Hallo Schneidrian
(biste echt so getauft worden? - fiese Eltern! - oder hast du einen richtigen Vornamen, den auch wir gern lesen würden?)
Was sind denn x-Boxen?
Und was meinst du mit all den ok-Befehlszeilen, z Bsp die hier:
ok = "" <> ActiveSheet.Range("A9").Value
Das ergibt Syntaxfehler, da du der Variablen ok nur einen Wert zuweisen kannst (ok = "") und nicht in der gleichen Zeile prüfen kannst, ob der Wert in Zelle 9 ungleich ist (<>).
Was meinst du eigentlich mit dem 2. Teil in dieser Zeile?
Welche Wertungleichheit gegenüber A9 soll geprüft werden?
Am besten, du versuchst mal in Worten zu erklären, was du mit dieser Befehlszeile erreichen willst?
Vielleicht können wir dir dann weiterhelfen.
Ciao
Thorsten
Bild

Betrifft: AW: Frage zu Checkbox
von: Florian

Geschrieben am: 27.12.2006 10:59:56
Hallo Thorsten,
OK, als erstes ist mein Name Florian. Schneidrian ein Spitzname, zusammen gesetzt aus Vor- und Nachnahmen.
Mein Problem:
Ich will eine undefinierte Anzahl an Checkboxen automatisch abhaken lassen.
Wenn in einer Zelle irgendwas (Zahlen, Wörter, was auch immer...)dann soll die Checkbox abgehakt werden, wenn die Zelle leer ist, dann soll auch die Checkbox leer sein.
Um das ganze auf die Spitze zu treiben soll die abgefragte Zelle auf einem anderen Reiter sein (z.B Tabelle2)
Das ganze Spiel soll wie gesagt nicht nur für eine Box sondern für X-Boxen funktionieren.
Ich hoffe nun dass ich das so einigermaßen klar beschrieben habe...
Viele Grüße
Florian
Bild

Betrifft: AW: Frage zu Checkbox
von: Schneidrian
Geschrieben am: 27.12.2006 11:02:14
Wieder mal ein Nachtrag...
Jede Checkbox soll über eine eigene Zelle angesteuert werden. Wäre aber auch interessant ob man mit einer Zelle zwei oder mehrere Boxen ansteuern kann. Das aber nur aus Interesse.
Viele Grüße
Florian
Bild

Betrifft: AW: Frage zu Checkbox
von: Oberschlumpf

Geschrieben am: 27.12.2006 12:06:20
Hi Florian
Schön, das mit dem Vornamen ist ja nun geklärt :-)
Ich - und sicher auch viele Andere - wissen halt gern die Namen derer, denen wir antworten. Das macht das Ganze freundlicher.
Eine Lösung zu deinen Fragen könnte so aussehen:
https://www.herber.de/bbs/user/39198.xls
Diese Datei dient als Bsp, damit du den Code ansehen und verstehen kannst.
Natürlich musst du ihn an deine Bedürfnisse anpassen, da du ja nicht verraten hast, um welche Zellen es sich handelt, die für dich wichtig sind.
Und wenn sich die Checkboxen gar nicht direkt im Tabellenblatt sondern in einem Userform befinden (was du auch nicht erwähntest), dann kannst du den Code einfach ins Userform übernehmen - an die richtige Stelle.
Konnte ich helfen?
Ciao
Thorsten
Bild

Betrifft: AW: Frage zu Checkbox
von: Schneidrian
Geschrieben am: 27.12.2006 12:24:50
Hallo Thorsten,
das sieht aber nun wirklich gut aus! Ich denke damit kriege ich es hin!
Viele Grüße
Florian
Bild

Betrifft: AW: Frage zu Checkbox
von: Schneidrian

Geschrieben am: 27.12.2006 16:00:38
Hallo Thorsten,
Auf's neue...
Soweit läuft jetzt alles wunderbar, nur jetzt habe ich genau das Problem, dass eine Zelle einer anderen Tabelle abgefragt werden muss. Bei der mir vertrauten Schreibweise mit "tabelle2!etc" klappt das nicht. Wie muss ich denn das im VB anstellen?
Viele Grüße
Florian
Bild

Betrifft: AW: Frage zu Checkbox
von: Oberschlumpf

Geschrieben am: 27.12.2006 16:32:31
Hi Florian
Den Wert einer Zelle kannst du in VBA grundsätzlich so prüfen:
If Sheet("blattname").Range("zelle").Value = wert Then
blattname = DER Blattname des Tabellenblattes, in dem sich die Zelle befindet, die du überprüfen willst
zelle = DIE Zelle (Adresse), die du überprüfen willst
wert = DER Wert, den Zelle haben muss, damit Bedingung erfüllt ist
Wenn du aber mit Target.Value arbeiten willst, dann MÜSSEN sich alle Befehle, die sich auf Target beziehen, auch in dem Change-Ereignis DES Tabellenblattes befinden, in dem du die Zelle prüfen willst.
Bsp
Du schreibst gerad in Tabelle 1 in Zelle A1 einen Wert - JETZT ist A1 das Target
Deswegen kannst du NICHT die Zelle eines anderen Tabellenblattes als Target bestimmen.
Target IST IMMER DIE ZELLe, in der du gerad einen Wert änderst.
Konnte ich helfen?
Ciao
Thorsten
Bild

Betrifft: AW: Frage zu Checkbox
von: Schneidrian

Geschrieben am: 27.12.2006 10:44:43
Hallo zusammen,
Noch ne Frage...
Wie kann ich denn x-Boxen auf diese Art abfragen?
Ich komm hier auf keinen grünen Zweig... Hier mal mein Machwerk
Option Explicit
Dim ok As Boolean
Private Sub CheckBox2_Click()
ok = "" <> ActiveSheet.Range("A9").Value
Me.CheckBox2.Value = ok
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$9" Then
ok = "" <> Target.Value
Me.CheckBox2.Value = ok
End If
End Sub

Private Sub CheckBox1_Click()
ok = "" <> ActiveSheet.Range("A16").Value
Me.CheckBox1.Value = ok
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$16" Then
ok = "" <> Target.Value
Me.CheckBox1.Value = ok
End If
End Sub

Viele Grüße
Schneidrian
Bild

Betrifft: AW: Frage zu Checkbox
von: Schneidrian

Geschrieben am: 27.12.2006 10:53:24
Noch ein Nachtrag,
Wie muss die Zelle denn geschrieben werden wenn es auf ein anderes Tabellenblatt abfragen soll? zum Beispiel in Tabelle2 Zelle A1? So wie ich es unten angefügt habe klappt das ned wirklich...
Ich sollte wirklich mal nen VBA Kurs machen...
Private Sub CheckBox2_Click()
ok = "" <> ActiveSheet.Range("Tabelle2!A1").Value
Me.CheckBox2.Value = ok
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "Tabelle2!A1" Then
ok = "" <> Target.Value
Me.CheckBox2.Value = ok
End If
End Sub

 Bild
Excel-Beispiele zum Thema "Frage zu Checkbox"
Zustand von Tabellenblatt-Checkboxes ermitteln Summenbildung bei Checkboxaktivierung
Alle CheckBoxes einer UserForm ansprechen Beim Aktivieren einer CheckBox Häkchen in Zelle eintragen
Passwort vergeben und bei CheckBox-Aktivität abfragen CheckBoxes in UserForms in eine Schleife einbinden
Anzahl von CheckBoxes in einer UserForm ermitteln Werte von CheckBoxes in einer UserForm abfragen
ComboBox in Abhängigkeit von einer CheckBox anzeigen CheckBoxes in einer Tabelle über Zelleingaben steuern