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

In ListBox markierte Row im Root Table löschen

In ListBox markierte Row im Root Table löschen
26.02.2015 10:55:24
Allan
Hallo an alle!
Ich nutze auf einer Userform eine Listbox als Tabellenblattansicht und möchte gerne nach Belieben ganze Rows löschen können. Die in der Listbox markierte Zeile, soll in der Ursprungstabelle sowie auch in der Listbox gelöscht werden. Anbei mein Delete Code:
Private Sub cmdDelete_Click()
With Me.ListBox1
If .ListIndex > -1 Then .RemoveItem(.ListIndex)
End with
End Sub
Hier mein Code für die Visualisierung in der ListBox:
Private Sub Userform_Initialize()
Dim 	arr
arr = Sheets("Sheet3").Range("A1").CurrentRegion 'Alternativ .Range("2:" & lRow)
With ListBox1
.ColumnCount = UBound(arr, 2)
.List = arr
.ColumnHeads = False
.ColumnWidths = "45;120;120;30;30;30;30;60;40;40;40"
End With
End Sub

Besten Dank für eure Hilfe!
Lieber Gruss
Allan B.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
In ListBox markierte Row im Root Table löschen
26.02.2015 11:33:25
Hajo_Zi
dir ist schon klar das Userform_Initialize nur einmal in der Excelsitzung ausgeführt wird?
Rows(.ListIndex +1).delete

AW: In ListBox markierte Row löschen
26.02.2015 11:38:15
EtoPHG
dir ist schon klar das Userform_Initialize genau soviel mal aufgerufen wird, wie das Klassenmodul der Userform geladen wird und überhaupt nichts mit deiner Excelsitzung zu tun hat?
Gruess Hansueli

AW: In ListBox markierte Row löschen
26.02.2015 11:35:32
EtoPHG
Hallo Allan,
Dann ist doch der Row-Index = ListIndex + ErsteZeileNr (1 oder alternativ 2) der Zeile die du löschen willst, also wo ist dein Problem? Bei deinem angegebenen Level?
Gruess Hansueli

Anzeige
AW: In ListBox markierte Row löschen
26.02.2015 12:04:18
Allan
Hoi Hansueli,
Vielleicht war meine Selbsteinschätzung ein bisschen zu voreilig. Ich verstehe, dass Row-Index = ListIndex + 1 = Zeilenzuweisung ist, jedoch happert es noch bei der Implementierung deiner Idee!
Kannst du mir sagen wie genau ich den cmd schreiben muss?
PS: Ich arbeite jeden Tag meine Wissenslücken zu schliessen
Liebe Grüess
Allan B.

AW: In ListBox markierte Row löschen
26.02.2015 12:13:03
EtoPHG
Hallo Allan,
z.B. so:
Private Sub cmdDelete_Click()
With Me.ListBox1
If .ListIndex > -1 Then
.RemoveItem (.ListIndex)
Sheets("Sheet3").Rows(.ListIndex - 1).Delete
End If
End With
End Sub

Gruess Hansueli

Anzeige
AW: In ListBox markierte Row im Root Table löschen
26.02.2015 11:51:54
fcs
Hallo Allan,
nachfolgend Ergänzungen/Anpassungen, um die in der Listbox selektierte Zeile in Listbox und Tabellenblatt zu löschen.
Gruß
Franz
'Userform-Code
Option Explicit
Private wksData As Worksheet
Private Sub cmdDelete_Click()
Dim Zeile As Long
With Me.ListBox1
If .ListIndex > 0 Then 'Zeile 1 soll nicht gelöscht werden können
Zeile = .ListIndex + 1
If MsgBox("Zeile " & Zeile & " in Tabelle """ & wksData.Name & """ löschen?", _
vbOKCancel, "Zeile löschen") = vbOK Then
wksData.Rows(Zeile).Delete
.RemoveItem (.ListIndex)
End If
End If
End With
End Sub
Private Sub Userform_Initialize()
Dim arr
Set wksData = ActiveWorkbook.Sheets("Sheet3")
arr = wksData.Range("A1").CurrentRegion 'Alternativ .Range("2:" & lRow)
With ListBox1
.List = arr
.ColumnCount = UBound(arr, 2)
.ColumnHeads = False
.ColumnWidths = "45;120;120;30;30;30;30;60;40;40;40"
End With
Erase arr
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige