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

in Liste aktivieren

Betrifft: in Liste aktivieren von: Walter k
Geschrieben am: 22.09.2020 09:46:26

Guten Morgen,
ich habe noch ein kleines Problem.
Nach dem löschen soll in der Listbox die Zeile aktiviert werden,
entweder darunter oder auch darüber der gelöschten Zeile.
Die 1. Zeile in der Listbox habe ich deaktiviert, da ich mehr als 100 Einträge habe.

Private Sub CommandButton4_Click()
Dim lZeile As Long
If ListBox1.ListIndex = -1 Then Exit Sub
lZeile = 4
Do While Trim(CStr(Tabelle1.Cells(lZeile, 2).Value)) <> ""
If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 2).Value)) Then
Tabelle1.Rows(CStr(lZeile & ":" & lZeile)).Delete
With Sheets("Typen")
ListBox1.List = .Range(.Cells(4, 2), .Cells(4, 2).End(xlDown)).Resize(, 2).Value
.Columns("B:C").EntireColumn.AutoFit 'spalten optimal angepaßt
End With
' If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0 'hiermit wird die 1.Zeile angesprungen
Exit Do
End If
lZeile = lZeile + 1
Loop
TextBox1.Value = ""
TextBox2.Value = ""

mfg
walter k

Betrifft: AW: in Liste aktivieren
von: Beverly
Geschrieben am: 22.09.2020 10:34:59

Hi Walter,

schreibe dir vor dem Löschen den ListIndex der aktivierten Zeile auf eine Variable.


GrußformelBeverly's Excel - Inn

Betrifft: Habe ich gemacht ! klappt -)
von: Walter k
Geschrieben am: 22.09.2020 12:37:34



Betrifft: AW: in Liste aktivieren
von: GerdL
Geschrieben am: 22.09.2020 11:34:09

Servus Walter,

es passt nur in etwa, wenn Tabelle1 u. Tabelle "Typen" zeilengleich sind.
Private Sub CommandButton4_Click()
Dim lZeile As Long
If ListBox1.ListIndex = -1 Then Exit Sub
lZeile = 4
Do While Trim(CStr(Tabelle1.Cells(lZeile, 2).Value)) <> ""

If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 2).Value)) Then
Tabelle1.Rows(CStr(lZeile & ":" & lZeile)).Delete
With Sheets("Typen")
ListBox1.List = .Range(.Cells(4, 2), .Cells(4, 2).End(xlDown)).Resize(, 2).Value
.Columns("B:C").EntireColumn.AutoFit 'spalten optimal angepaßt
End With
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = lZeile 'hiermit wird die Zeile angesprungen
Exit Do
End If

lZeile = lZeile + 1
Loop

TextBox1.Value = ""
TextBox2.Value = ""
End Sub

Gruß Gerd

Betrifft: AW: in Liste aktivieren
von: Walter k
Geschrieben am: 22.09.2020 12:34:32

Hallo Gerd,
nach dem Löschen, wird die 4 Zeile weiter nach unten selectiert.

mfg
walter k

Betrifft: dann eben ...
von: Rudi Maintaire
Geschrieben am: 22.09.2020 12:37:38

If ListBox1.ListCount > 0 Then ListBox1.ListIndex = lZeile-4
Denken hilft.

Betrifft: Danke Gerd ! -)
von: Walter k
Geschrieben am: 22.09.2020 14:31:46



Betrifft: BITTE dringend Nachfrage...
von: Walter k
Geschrieben am: 22.09.2020 14:41:43

Hallo zusammen,
ich lösche hiermit die Zeile:
Tabelle1.Rows(CStr(lZeile & ":" & lZeile)).Delete

Ich möchte aber NUR die Spalte2 und Spalt3 löschen.

mfg
walter k

Betrifft: .Range("B" & lZeile & ":C" & lZeile).Delete - o.T.
von: Beverly
Geschrieben am: 22.09.2020 14:47:30


GrußformelBeverly's Excel - Inn

Betrifft: Danke an Beverly und Rudi !!! o.T.
von: Walter k
Geschrieben am: 22.09.2020 18:13:24



Betrifft: Tabelle1.Cells(lZeile,2).Resize(,2).Delete owT
von: Rudi Maintaire
Geschrieben am: 22.09.2020 15:36:21



Beiträge aus dem Excel-Forum zum Thema "in Liste aktivieren"