Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1392to1396
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

Erweiterung der Userform durch weitere Checkboxen

Erweiterung der Userform durch weitere Checkboxen
26.11.2014 10:55:57
Langmantl
Ich habe in beigelegter Datei die Userform erweitert um 5 Checkboxen anwesendheit. Entsprechend habe ich meiner Meinung nach den Code angepasst. Nun habe ich folgendes Problem. Wenn ich in der Listbox einen Namen auswähle, stimmen die Hacken nicht immer überein. Bei Isst Mit funktioniert es einwandfrei, bei Anwesendheit kommt er irgendwie durcheinander, wenn Hacken gesetzt trägt er in die Tabelle Mitarbeiterdatenbank ein Ja ein. Wenn ich jetzt einen anderen Namen selektiere und der bei Anwesendheit keine Hacken hat, werden trotzdem entsprechend Hacken gezeigt. Wo habe ich da den Fehler gemacht?
  • 'Neuer Eintrag Schaltfläche Ereignisroutine'
    Private Sub CommandButton1_Click()
    Dim lZeile As Long
    lZeile = 3
    'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
    Do While Trim(CStr(Tabelle3.Cells(lZeile, 1).Value))  ""
    lZeile = lZeile + 1 'Nächste Zeile bearbeiten
    Loop
    Tabelle3.Cells(lZeile, 1) = CStr("Neuer Eintrag Zeile " & lZeile)
    ListBox1.AddItem CStr("Neuer Eintrag Zeile " & lZeile)
    ListBox1.ListIndex = ListBox1.ListCount - 1
    End Sub
    

    'Löschen Schaltfläche Ereignisroutine
    Private Sub CommandButton2_Click()
    Dim lZeile As Long
    'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
    If ListBox1.ListIndex = -1 Then Exit Sub
    'Zum Löschen benötigen wir die Zeilennummer des ausgewählten Datensatzes
    lZeile = 3 'Start in Zeile 5, Zeile 1 sind ja die Überschriften
    'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
    Do While Trim(CStr(Tabelle3.Cells(lZeile, 1).Value))  ""
    'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
    If ListBox1.Text = Trim(CStr(Tabelle3.Cells(lZeile, 1).Value)) Then
    'Eintrag gefunden, Inhalt in der Zeile Spalte A bis N wird nun gelöscht  '### geändert
    With Tabelle3                                                  '### geändert
    .Range(.Cells(lZeile, 1), .Cells(lZeile, 14)).ClearContents
    End With                                                       '### geändert
    Range("A3:N100").Select
    ActiveWorkbook.Worksheets("MitarbeiterDB").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("MitarbeiterDB").Sort.SortFields.Add Key:=Range( _
    "A3"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
    With ActiveWorkbook.Worksheets("MitarbeiterDB").Sort
    .SetRange Range("A3:N100")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    'Die ListBox muss nun neu geladen werden!
    Call UserForm_Initialize
    If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
    Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
    End If
    lZeile = lZeile + 1 'Nächste Zeile bearbeiten
    Loop
    End Sub
    

    'Speichern Schaltfläche Ereignisroutine
    Private Sub CommandButton3_Click()
    Dim lZeile As Long
    'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
    If ListBox1.ListIndex = -1 Then Exit Sub
    'Wir müssen prüfen, ob die ID Spalte auch gefüllt ist!!
    If Trim(CStr(TextBox1.Text)) = "" Then
    'Meldung ausgeben
    MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!" _
    'Abbrechen der Speicherroutine
    Exit Sub
    End If
    'Ausbauoption: Prüfen, ob die ID in Tabelle1 Spalte 1 schon vorhanden ist!
    'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
    lZeile = 3 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
    'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
    Do While Trim(CStr(Tabelle3.Cells(lZeile, 1).Value))  ""
    'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
    If ListBox1.Text = Trim(CStr(Tabelle3.Cells(lZeile, 1).Value)) Then
    'Eintrag gefunden, TextBoxen in die Zellen schreiben
    Tabelle3.Cells(lZeile, 1).Value = Trim(CStr(TextBox1.Text))
    Tabelle3.Cells(lZeile, 2).Value = Me.ComboBox1.Value
    Tabelle3.Cells(lZeile, 3).Value = TextBox3.Text
    If Me.CheckBox1 = True Then
    Tabelle3.Cells(lZeile, 4).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 4).Value = ""
    End If
    If Me.CheckBox2 = True Then
    Tabelle3.Cells(lZeile, 5).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 5).Value = ""
    End If
    If Me.CheckBox3 = True Then
    Tabelle3.Cells(lZeile, 6).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 6).Value = ""
    End If
    If Me.CheckBox4 = True Then
    Tabelle3.Cells(lZeile, 7).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 7).Value = ""
    End If
    If Me.CheckBox5 = True Then
    Tabelle3.Cells(lZeile, 8).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 8).Value = ""
    End If
    If Me.CheckBox6 = True Then
    Tabelle3.Cells(lZeile, 9).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 9).Value = ""
    End If
    If Me.CheckBox7 = True Then
    Tabelle3.Cells(lZeile, 10).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 10).Value = ""
    End If
    If Me.CheckBox8 = True Then
    Tabelle3.Cells(lZeile, 11).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 11).Value = ""
    End If
    If Me.CheckBox9 = True Then
    Tabelle3.Cells(lZeile, 12).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 12).Value = ""
    End If
    If Me.CheckBox10 = True Then
    Tabelle3.Cells(lZeile, 13).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 13).Value = ""
    End If
    If Me.CheckBox11 = True Then
    Tabelle3.Cells(lZeile, 14).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 14).Value = ""
    End If
    Range("A3:N100").Select
    ActiveWorkbook.Worksheets("MitarbeiterDB").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("MitarbeiterDB").Sort.SortFields.Add Key:=Range( _
    "A3"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
    With ActiveWorkbook.Worksheets("MitarbeiterDB").Sort
    .SetRange Range("A3:N100")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    'Die ListBox muss nun neu geladen werden
    'allerdings nur, wenn sich der Name (ID) geändert hat
    If ListBox1.Text  Trim(CStr(TextBox1.Text)) Then
    Call UserForm_Initialize
    If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
    End If
    Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
    End If
    lZeile = lZeile + 1 'Nächste Zeile bearbeiten
    Loop
    End Sub
    

    'Beenden Schaltfläche Ereignisroutine'
    Private Sub CommandButton4_Click()
    Unload Me
    End Sub
    

    'Klick auf die ListBox Ereignisroutine
    
    Private Sub ListBox1_Click()
    Dim lZeile As Long
    Dim i As Variant
    '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 = ""
    TextBox3 = ""
    Me.ComboBox1.ListIndex = -1
    'Nur wenn ein Eintrag selektiert/markiert ist
    If ListBox1.ListIndex >= 0 Then
    With Me.ListBox1
    Me.ComboBox1 = .List(.ListIndex, 1)
    End With
    lZeile = 3 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
    'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
    Do While Trim(CStr(Tabelle3.Cells(lZeile, 1).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(Tabelle3.Cells(lZeile, 1).Value)) Then
    'TextBoxen füllen
    TextBox1 = Trim(CStr(Tabelle3.Cells(lZeile, 1).Value))
    Me.ComboBox1 = Tabelle3.Cells(lZeile, 2).Value
    TextBox3 = Tabelle3.Cells(lZeile, 3).Value
    If Tabelle3.Cells(lZeile, 4).Value = "Ja" Then
    Me.CheckBox1 = Tabelle3.Cells(lZeile, 4).Value
    Me.CheckBox1 = True
    Else: Me.CheckBox1 = False
    End If
    If Tabelle3.Cells(lZeile, 5).Value = "Ja" Then
    Me.CheckBox2 = Tabelle3.Cells(lZeile, 5).Value
    Me.CheckBox2 = True
    Else: Me.CheckBox2 = False
    End If
    If Tabelle3.Cells(lZeile, 6).Value = "Ja" Then
    Me.CheckBox3 = Tabelle3.Cells(lZeile, 6).Value
    Me.CheckBox3 = True
    Else: Me.CheckBox3 = False
    End If
    If Tabelle3.Cells(lZeile, 7).Value = "Ja" Then
    Me.CheckBox4 = Tabelle3.Cells(lZeile, 7).Value
    Me.CheckBox4 = True
    Else: Me.CheckBox4 = False
    End If
    If Tabelle3.Cells(lZeile, 8).Value = "Ja" Then
    Me.CheckBox5 = Tabelle3.Cells(lZeile, 8).Value
    Me.CheckBox5 = True
    Else: Me.CheckBox5 = False
    If Tabelle3.Cells(lZeile, 9).Value = "Ja" Then
    Me.CheckBox6 = Tabelle3.Cells(lZeile, 9).Value
    Me.CheckBox6 = True
    Else: Me.CheckBox6 = False
    End If
    If Tabelle3.Cells(lZeile, 10).Value = "Ja" Then
    Me.CheckBox7 = Tabelle3.Cells(lZeile, 10).Value
    Me.CheckBox7 = True
    Else: Me.CheckBox7 = False
    End If
    If Tabelle3.Cells(lZeile, 11).Value = "Ja" Then
    Me.CheckBox8 = Tabelle3.Cells(lZeile, 11).Value
    Me.CheckBox8 = True
    Else: Me.CheckBox8 = False
    End If
    If Tabelle3.Cells(lZeile, 12).Value = "Ja" Then
    Me.CheckBox9 = Tabelle3.Cells(lZeile, 12).Value
    Me.CheckBox9 = True
    Else: Me.CheckBox9 = False
    End If
    If Tabelle3.Cells(lZeile, 13).Value = "Ja" Then
    Me.CheckBox10 = Tabelle3.Cells(lZeile, 13).Value
    Me.CheckBox10 = True
    Else: Me.CheckBox10 = False
    End If
    If Tabelle3.Cells(lZeile, 14).Value = "Ja" Then
    Me.CheckBox11 = Tabelle3.Cells(lZeile, 14).Value
    Me.CheckBox11 = True
    Else: Me.CheckBox11 = False
    End If
    End If
    Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
    End If
    lZeile = lZeile + 1 'Nächste Zeile bearbeiten
    Loop
    End If
    End Sub
    
    Private Sub UserForm_Activate()
    'Wenn die Eingabemaske angezeigt wird, markieren wir den ersten Namen
    'jedoch nur, wenn auch Einträge in der Liste stehen
    If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
    End Sub
    

    'Startroutine, wird ausgeführt bevor die Eingabemaske angezeigt wird
    
    Private Sub UserForm_Initialize()
    Dim lZeile As Long
    'Alle TextBoxen leer machen
    TextBox1 = ""
    TextBox3 = ""
    ComboBox1.ListIndex = -1
    'In dieser Routine laden wir alle vorhandenen
    'Einträge in die ListBox1
    ListBox1.Clear 'Zuerst einmal die Liste leeren
    lZeile = 3 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
    'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
    Do While Trim(CStr(Tabelle3.Cells(lZeile, 1).Value))  ""
    'Aktuelle Zeile in die ListBox eintragen
    ListBox1.AddItem Trim(CStr(Tabelle3.Cells(lZeile, 1).Value))
    lZeile = lZeile + 1 'Nächste Zeile bearbeiten
    Loop
    End Sub
    

  • https://www.herber.de/bbs/user/94026.xlsm

    8
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Erweiterung der Userform durch weitere Checkboxen
    26.11.2014 11:17:32
    Daniel
    Hi
    1. Fehler: Hacken hast du an den Füßen oder im Keller bei den Gartengeräten stehen. Du meinst wahrscheinlich Haken.
    2. If-Block für die Checkbox5 fehlt das END IF. Damit befinden sich alle folgenden Prüfungen im ELSE-Teil dieses IF-Blocks.
    Deine Prüfungen sind sowieso unübersichlich geschrieben.
    Vermeide es, insbesondere bei Strukturelementen wie IF-THEN-ELSE mehrere Befehle in eine Zeile zu schreiben, das verwirrt nur.
    Desweiten weist du der Checkbox erstmal den Text aus der Zelle ("Ja") zu, und dann erst dein eigentlichen Wert WAHR. Das ist Unsinn, weil die Checkbox keine Texte als Wert annehmen kann.
    deine Prüfungen:
    If Tabelle3.Cells(lZeile, 4).Value = "Ja" Then
    Me.CheckBox1 = Tabelle3.Cells(lZeile, 4).Value
    Me.CheckBox1 = True
    Else: Me.CheckBox1 = False
    End If
    

    kannst du so verkürzen, so dass du für jede Checkbox nur eine Zeile brauchst:
    Me.Checkbox1 = (Tabelle3.Cells(lZeile, 4).Value = "Ja")
    
    damit lässt sich die Prüfung in eine Schleife fassen:
    For i = 1 to 11
    Me.Controls("Checkbox" & i).Value = (Tabelle3.Cells(lZeile, 3 + i).Value = "Ja")
    Next
    
    Gruß Daniel

    Anzeige
    AW: Erweiterung der Userform durch weitere Checkboxen
    26.11.2014 11:42:25
    Langmantl
    Danke funktioniert super, kann ich bei der folgenden Routine auch etwas verkürzen?
  • 'Eintrag gefunden, TextBoxen in die Zellen schreiben
    Tabelle3.Cells(lZeile, 1).Value = Trim(CStr(TextBox1.Text))
    Tabelle3.Cells(lZeile, 2).Value = Me.ComboBox1.Value
    Tabelle3.Cells(lZeile, 3).Value = TextBox3.Text
    If Me.CheckBox1 = True Then
    Tabelle3.Cells(lZeile, 4).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 4).Value = ""
    End If
    If Me.CheckBox2 = True Then
    Tabelle3.Cells(lZeile, 5).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 5).Value = ""
    End If
    If Me.CheckBox3 = True Then
    Tabelle3.Cells(lZeile, 6).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 6).Value = ""
    End If
    If Me.CheckBox4 = True Then
    Tabelle3.Cells(lZeile, 7).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 7).Value = ""
    End If
    If Me.CheckBox5 = True Then
    Tabelle3.Cells(lZeile, 8).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 8).Value = ""
    End If
    If Me.CheckBox6 = True Then
    Tabelle3.Cells(lZeile, 9).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 9).Value = ""
    End If
    If Me.CheckBox7 = True Then
    Tabelle3.Cells(lZeile, 10).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 10).Value = ""
    End If
    If Me.CheckBox8 = True Then
    Tabelle3.Cells(lZeile, 11).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 11).Value = ""
    End If
    If Me.CheckBox9 = True Then
    Tabelle3.Cells(lZeile, 12).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 12).Value = ""
    End If
    If Me.CheckBox10 = True Then
    Tabelle3.Cells(lZeile, 13).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 13).Value = ""
    End If
    If Me.CheckBox11 = True Then
    Tabelle3.Cells(lZeile, 14).Value = "Ja"
    Else: Tabelle3.Cells(lZeile, 14).Value = ""
    End If

  • Gruß Benedikt

    Anzeige
    AW: Erweiterung der Userform durch weitere Checkboxen
    26.11.2014 11:50:24
    Daniel
    Hi
    über die IIF-Funktion kannst du da auch einen Einzeiler draus machen.
    IIF funktionioniert genau so wie die WENN-Funktion in Excel:
    Tabelle3.Cells(lZeile, 4).Value = IIF(Checkbox1.Value, "Ja", "")
    
    als Schleife dann wie gezeigt, die Checkbox über Me.Controls(Checkboxname) ansprechen.
    Gruß, Daniel

    AW: Erweiterung der Userform durch weitere Checkboxen
    26.11.2014 12:03:33
    Langmantl
    habe ich versucht
    For i = 1 To 11
    Tabelle3.Cells(lZeile, 4+i).Value = IIF Me.Controls("Checkbox"&i).Value, "Ja", "")
    Next i
    zeigt er mir aber Fehler an, offensichtlich habe ich dich falsch verstanden

    Anzeige
    AW: Erweiterung der Userform durch weitere Checkboxen
    26.11.2014 13:07:39
    Daniel
    Hi
    naja, Klammern sollte man schon richtig setzen können, schau dir nochmal mein Beispiel an.
    du musst den Teil Checkbox1.Value durch Me.Controls("Checkbox" & i) ersetzen
    vor und nachm dem "&" muss ein Leerzeichen stehen, wenn das & zum Verketten von Teiltexten verwendet wird (VBA verwendet das & noch für andere Sachen, deswegen muss man hier auf die Leerzeichen achten).
    4+1 = 5! bitte beachten.
    Gruß Daniel

    AW: Erweiterung der Userform durch weitere Checkboxen
    26.11.2014 13:23:06
    Langmantl
    ok, habe es entsprechend geändert, funktioniert aber beim Eintragen nicht, zeigt anstatt ein Ja, ##### an
  • 'Speichern Schaltfläche Ereignisroutine
    Private Sub CommandButton3_Click()
    Dim lZeile As Long
    'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
    If ListBox1.ListIndex = -1 Then Exit Sub
    'Wir müssen prüfen, ob die ID Spalte auch gefüllt ist!!
    If Trim(CStr(TextBox1.Text)) = "" Then
    'Meldung ausgeben
    MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!" _
    'Abbrechen der Speicherroutine
    Exit Sub
    End If
    'Ausbauoption: Prüfen, ob die ID in Tabelle1 Spalte 1 schon vorhanden ist!
    'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
    lZeile = 3 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
    'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
    Do While Trim(CStr(Tabelle3.Cells(lZeile, 1).Value))  ""
    'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
    If ListBox1.Text = Trim(CStr(Tabelle3.Cells(lZeile, 1).Value)) Then
    'Eintrag gefunden, TextBoxen in die Zellen schreiben
    Tabelle3.Cells(lZeile, 1).Value = Trim(CStr(TextBox1.Text))
    Tabelle3.Cells(lZeile, 2).Value = Me.ComboBox1.Value
    Tabelle3.Cells(lZeile, 3).Value = TextBox3.Text
    For i = 1 To 11
    Tabelle3.Cells(lZeile, 3 + i).Value = "Ja" = Me.Controls("Checkbox" & i).Value
    Next i
    Range("A3:N100").Select
    ActiveWorkbook.Worksheets("MitarbeiterDB").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("MitarbeiterDB").Sort.SortFields.Add Key:=Range( _
    "A3"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
    With ActiveWorkbook.Worksheets("MitarbeiterDB").Sort
    .SetRange Range("A3:N100")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    'Die ListBox muss nun neu geladen werden
    'allerdings nur, wenn sich der Name (ID) geändert hat
    If ListBox1.Text  Trim(CStr(TextBox1.Text)) Then
    Call UserForm_Initialize
    If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
    End If
    Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
    End If
    lZeile = lZeile + 1 'Nächste Zeile bearbeiten
    Loop
    End Sub
    

    'Beenden Schaltfläche Ereignisroutine'
    Private Sub CommandButton4_Click()
    Unload Me
    End Sub
    

    'Klick auf die ListBox Ereignisroutine
    
    Private Sub ListBox1_Click()
    Dim lZeile As Long
    Dim i As Variant
    '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 = ""
    TextBox3 = ""
    Me.ComboBox1.ListIndex = -1
    'Nur wenn ein Eintrag selektiert/markiert ist
    If ListBox1.ListIndex >= 0 Then
    With Me.ListBox1
    Me.ComboBox1 = .List(.ListIndex, 1)
    End With
    lZeile = 3 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
    'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
    Do While Trim(CStr(Tabelle3.Cells(lZeile, 1).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(Tabelle3.Cells(lZeile, 1).Value)) Then
    'TextBoxen füllen
    TextBox1 = Trim(CStr(Tabelle3.Cells(lZeile, 1).Value))
    Me.ComboBox1 = Tabelle3.Cells(lZeile, 2).Value
    TextBox3 = Tabelle3.Cells(lZeile, 3).Value
    For i = 1 To 11
    Me.Controls("Checkbox" & i).Value = (Tabelle3.Cells(lZeile, 3 + i).Value = " _
    Ja")
    Next i
    Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
    End If
    lZeile = lZeile + 1 'Nächste Zeile bearbeiten
    Loop
    End If
    End Sub
    

  • Wahrscheinlich reichen meine VBA Kentnisse nicht um das richtig zu blicken, deshalb schicke ich nochmal die Datei
    https://www.herber.de/bbs/user/94032.xlsm

    Anzeige
    AW: Erweiterung der Userform durch weitere Checkboxen
    26.11.2014 13:36:51
    Daniel
    Hi
    ok da du offensichtlich eine etwas intensivere Betreuung brauchst:
    For i = 1 To 11
    Tabelle3.Cells(lZeile, 3 + i).Value = IIF(Me.Controls("Checkbox" & i).Value, "Ja", "")
    Next i
    

    Gruß Daniel

    AW: Erweiterung der Userform durch weitere Checkboxen
    26.11.2014 13:45:09
    Langmantl
    Hi Daniel, ja das siehst du richtig, ich kenne mich noch nicht so gut aus. Aber jetzt dank dir funxt es einwandfrei, Danke Anke

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige