Anzeige
Archiv - Navigation
1916to1920
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 Abfragen aus UF

Checkboxen Abfragen aus UF
21.01.2023 11:58:45
Olaf
Guten Morgen,
ich habe mehrere "checkboxen" in eine Tabelle (Spalte M, Zeile 2,3,4,usw.) eingefügt. Diesen habe ich die Makros
Private Sub CheckBox1_Click()
If CheckBox1 Then
Range("M2") = Date
Else
Range("M2").ClearContents
End If
End Sub
zugeordnet. Nun möchte ich das Ganze aus einer Userform tätigen. Sprich: 1. aktuellen Status auslesen der Checkbox auslesen, 2. Checkbox bearbeiten, speichern und auf Tabelle aktualisieren. Bei nächstem Öffnen der Userform den aktuellen Status zeigen. Ich habe bereits einen Code für die Daten (Texte) aus Spalte D,E,F, usw. der Zeilen 2-....wie folgt:
'Klick auf die ListBox Ereignisroutine
Private Sub ListBox1_Click()
  Dim lZeile As Long
    'Wenn der Benutzer einen Namen anklickt, suchen wir
    'diesen in der Tabelle1 heraus und tragen die Daten
    'in die TextBoxen ein.
        'Wir löschen standardmäßig alle bisherigen TextBoxen-Inhalte
    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
    TextBox4 = ""
    TextBox5 = ""
    TextBox6 = ""
    TextBox7 = ""
    TextBox8 = ""
    TextBox9 = ""
    TextBox10 = ""
    TextBox11 = ""
    TextBox12 = ""
    TextBox13 = ""
    TextBox14 = ""
    CheckBox1 = ""
        'Nur wenn ein Eintrag selektiert/markiert ist
    If ListBox1.ListIndex >= 0 Then
            lZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriftrn
        'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
        Do While Trim(CStr(Tabelle1.Cells(lZeile, 4).Value)) > ""
                    'Wenn wir den Namen aus der ListBox1 in der Tabelle1 Spalte 1
            'gefunden haben, übertragen wir die anderen Spalteninhalte
            'in die TextBoxen!
            If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 4).Value)) Then
                            'TextBoxen füllen
                TextBox1 = Trim(CStr(Tabelle1.Cells(lZeile, 4).Value))
                TextBox2 = Tabelle1.Cells(lZeile, 5).Value
                TextBox3 = Tabelle1.Cells(lZeile, 6).Value
                TextBox4 = Tabelle1.Cells(lZeile, 7).Value
                TextBox5 = Tabelle1.Cells(lZeile, 8).Value
                TextBox6 = Tabelle1.Cells(lZeile, 27).Value
                TextBox7 = Tabelle1.Cells(lZeile, 28).Value
                TextBox8 = Tabelle1.Cells(lZeile, 13).Value
                TextBox9 = Tabelle1.Cells(lZeile, 100).Value
                TextBox10 = Tabelle1.Cells(lZeile, 101).Value
                TextBox11 = Tabelle1.Cells(lZeile, 102).Value
                TextBox12 = Tabelle1.Cells(lZeile, 9).Value
                TextBox13 = Tabelle1.Cells(lZeile, 10).Value
                TextBox14 = Tabelle1.Cells(lZeile, 11).Value
                CheckBox1 = Tabelle1.Cells(lZeile, 13).Value
                            Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
                        End If
                    lZeile = lZeile + 1 'Nächste Zeile bearbeiten
                Loop
            End If
    End Sub
Wie kann ich entsprechend die Checkboxabfrage implementieren?
Vielen Dank
Gruß, Olaf

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkboxen Abfragen aus UF
21.01.2023 14:49:06
Olaf
Ich habe mal eine Testdatei gebastelt und angehangen für ein besseres Verständnis. Es soll hier, wie bei den Textboxen, automatisch die richtigen Checkboxen zum entsprechenden Namen zugeordnet und markiert/Nicht markiert werden. Die Checkboxen habe ich genommen, da es mir nur hier möglich war, das erzeugte Datum zu fixieren.
https://www.herber.de/bbs/user/157413.xlsb
AW: Checkboxen Abfragen aus UF
21.01.2023 16:40:14
Nepumuk
Hallo Olaf,
teste mal:
Private Sub CommandButton2_Click()
    Dim lZeile As Long
    Dim objOLEObject As OLEObject
    If ListBox1.ListIndex > -1 Then
    If Trim(CStr(TextBox1.Text)) = "" Then
        MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!"
        Exit Sub
    End If
    lZeile = 2
    Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) > ""
        If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
            Tabelle1.Cells(lZeile, 1).Value = Trim$(TextBox1.Text)
            Tabelle1.Cells(lZeile, 2).Value = TextBox2.Text
            For Each objOLEObject In Tabelle1.OLEObjects
                If TypeOf objOLEObject.Object Is MSForms.CheckBox Then
                    If objOLEObject.TopLeftCell.Row = lZeile Then
                        objOLEObject.Object.Value = CheckBox1.Value
                        Exit For
                    End If
                End If
            Next
            If ListBox1.Text > Trim(CStr(TextBox1.Text)) Then
                Call UserForm_Initialize
                If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
            End If
            Exit Do
        End If
        lZeile = lZeile + 1
    Loop
End Sub
Gruß
Nepumuk
Anzeige
AW: Checkboxen Abfragen aus UF
21.01.2023 17:07:09
Olaf
Hallo Nepumuk, ich kann es leider nicht ganz testen. Ich sehe einfach nicht, wo das "End if" fehlt.....es gibt einen If-Block ohne End if. Siehst Du es? Dankeschön
Gruß Olaf
AW: Checkboxen Abfragen aus UF
21.01.2023 17:10:18
Olaf
Keine 5 Sek später.... hab ihn gefunden. Dankeschön nochmal!
Gruß Olaf
AW: Checkboxen Abfragen aus UF
21.01.2023 17:11:34
Nepumuk
Oooooooooops :-)
so natürlich:
Private Sub CommandButton2_Click()
    Dim lZeile As Long
    Dim objOLEObject As OLEObject
    If ListBox1.ListIndex > -1 Then
        If Trim(CStr(TextBox1.Text)) = "" Then
            MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!"
            Exit Sub
        End If
        lZeile = 2
        Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) > ""
            If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
                Tabelle1.Cells(lZeile, 1).Value = Trim$(TextBox1.Text)
                Tabelle1.Cells(lZeile, 2).Value = TextBox2.Text
                For Each objOLEObject In Tabelle1.OLEObjects
                    If TypeOf objOLEObject.Object Is MSForms.CheckBox Then
                        If objOLEObject.TopLeftCell.Row = lZeile Then
                            objOLEObject.Object.Value = CheckBox1.Value
                            Exit For
                        End If
                    End If
                Next
                If ListBox1.Text > Trim(CStr(TextBox1.Text)) Then
                    Call UserForm_Initialize
                    If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
                End If
                Exit Do
            End If
            lZeile = lZeile + 1
        Loop
    End If
End Sub
Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige