Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Löschen aus Listbox und Zeile in Tabelle mit Refre

Betrifft: Löschen aus Listbox und Zeile in Tabelle mit Refre von: Vulferin
Geschrieben am: 22.09.2014 18:22:13

Hallo zusammen
Ich befülle eine Listbox mit

  • Dim i As Integer
    For i = 1 To 9
    Controls("Textbox" & i) = ""
    Next
    TextBox11 = ""
    TextBox13 = ""
    TextBox15 = ""
    For i = 17 To 21
    Controls("Textbox" & i) = ""
    Next
    For i = 1 To 4
    Controls("Checkbox" & i) = False
    Next

    'In dieser Routine laden wir alle vorhandenen
    'Eintr_ge in die ListBox1
    ListBox1.Clear 'Zuerst einmal die Liste leeren

    lZeile = 2 '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(Tabelle1.Cells(lZeile, 1).Value)) <> ""

    'Aktuelle Zeile in die ListBox eintragen
    If Tabelle1.Rows(lZeile).Hidden = False Then
    With Me.ListBox1
    .ColumnCount = 2
    .AddItem
    .List(.ListCount - 1, 0) = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value))
    .List(.ListCount - 1, 1) = lZeile 'Zeilennummer des Datensatzes
    .ColumnWidths = "5,5cm;0,5cm" '<--- wenn Zeilennummer nicht angezeigt werden
    'soll letzten Eintrag auf 0cm ändern
    End With
    End If
    lZeile = lZeile + 1 'N_chste Zeile bearbeiten
    Loop


  • ich lösche einen Eintrag mit

  • Private Sub CommandButton2_Click()
       Dim lZeile As Long
           If ListBox1.ListIndex = -1 Then Exit Sub
             lZeile = 2
             Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> ""
             If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
                Tabelle1.Rows(CStr(lZeile & ":" & lZeile)).Delete
              Call UserForm_Initialize
                 If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
                 Exit Do
             End If
             lZeile = lZeile + 1
         Loop
        
    End Sub


  • jetzt springt er immer an den Anfang der Liste.
    kann mann das so machen das er Sich die Zeile wo er war merkt und dann wieder nach dem Löschen an diesen Zeilen Nr zurück springt ?

    d.H er löscht eintrag 20 ( ich glaub das kann mann über listindex abfragen oder ?)
    er diesen löscht und dann die neue nachgerückt 20 selektiert

      

    Betrifft: AW: Löschen aus Listbox und Zeile in Tabelle mit Refre von: fcs
    Geschrieben am: 23.09.2014 15:31:24

    Hallo Vulferin,

    wenn du schon eine Vermuting (ListIndex-Eigenschaft) hast, dann hättest du doch auch einen Versuch in diese Richtung machen können.

    ungetestet:

    Private Sub CommandButton2_Click()
       Dim lZeile As Long, lIndex As Long
           If listbox1.ListIndex = -1 Then Exit Sub
             lZeile = 2
             lIndex = listbox1.ListIndex 'Listindex merken
             Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) <> ""
             If listbox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
                Tabelle1.Rows(CStr(lZeile & ":" & lZeile)).Delete
                Call UserForm_Initialize
                With listbox1
                  If .ListCount > 0 Then
                    .ListIndex = IIf(lIndex <= .ListCount - 1, lIndex, .ListCount - 1)
                  End If
                End With
                Exit Do
             End If
             lZeile = lZeile + 1
         Loop
        
    End Sub
    
    Gruß
    Franz


     

    Beiträge aus den Excel-Beispielen zum Thema "Löschen aus Listbox und Zeile in Tabelle mit Refre"