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

VBA Aktion nur bei Selektierten Zeilen in Listbox

VBA Aktion nur bei Selektierten Zeilen in Listbox
23.08.2018 09:41:14
Andre_D
Hallo zusammen,
ich habe in einer Userform eine Listbox mit mehreren Spalten, die durch Klick auf einen CommandButton in ein Tabellenblatt (WA) kopiert werden sollen. Dazu sollen sie aus einem anderen Tabellenblatt (Bestand) gelöscht werden.
Im Grunde funktioniert das mit meinem Code ABER den o.g. zweiten Teil (Löschen) macht er nur, wenn die Zeilen markiert sind - was auch so sein soll.
Das Kopieren in das Tabellenblatt macht er auch ohne dass die Zeilen markiert sind - und das soll nicht so sein.
Ich habe kaum Kenntnisse und vermutlich muss nur die Bedingung "If selected..." eingefügt werden, aber ich scheitere an Variabelen.
Kann mir freundlicherweise jemand die fehlende Codezeile schreiben?
Mein Code ist:
Private Sub CommandButton3_Click()
' Zeile aus Listbox2 in Tabellenblatt Warenausgang kopieren
Dim last As Integer
last = Tabelle3.Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 0 To ListBox2.ListCount - 1
Tabelle3.Cells(last, 1) = ListBox2.List(i, 0)
Tabelle3.Cells(last, 2) = ListBox2.List(i, 1)
Tabelle3.Cells(last, 3) = ListBox2.List(i, 2)
Tabelle3.Cells(last, 4) = ListBox2.List(i, 3)
Tabelle3.Cells(last, 5) = ListBox2.List(i, 4)
Tabelle3.Cells(last, 6) = ListBox2.List(i, 5)
Tabelle3.Cells(last, 7) = ListBox2.List(i, 6)
Tabelle3.Cells(last, 8) = ListBox2.List(i, 7)
Tabelle3.Cells(last, 9) = ListBox2.List(i, 8)
last = last + 1
Next
' Zeile aus Tabellenblatt Bestand löschen
Dim intz As Integer, durchsuchen, finden As Range
Dim X&
With ListBox2
For X = .ListCount - 1 To 0 Step -1 'die Schleife unbedingt rücwärts laufen lassen!
If .Selected(X) = True Then
Set durchsuchen = Sheets("Bestand").Range("A2:I" & Sheets("Bestand").Range(" _
A65536").End(xlUp).Row)
For Each finden In durchsuchen
If finden.Text = .List(X, 0) Then     'Textvergleich der Tabelle mit Listbox  _
Zeile(x) aus Spalte5!
intz = finden.Row                  'Zeile ermitteln
Cells(intz, 7).EntireRow.Delete    'Zeile in Tabelle löschen
Exit For
End If
Next finden
'erst jetzt den Eintrag in Listbox löschen!
.RemoveItem (X)
End If
Next
End With
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Aktion nur bei Selektierten Zeilen in Listbox
23.08.2018 10:45:11
Werner
Hallo Andre,
so:
Dim li As Long, sp As Long, last As Long
last = Tabelle3.Cells(Rows.Count, 1).End(xlUp).Row + 1
With Me.ListBox2
For li = 0 To .ListCount - 1
If .Selected(li) Then
For sp = 0 To 7
Tabelle3.Cells(last, sp + 1) = .List(li, sp)
Next sp
last = last + 1
End If
Next li
End With

Gruß Werner
AW: VBA Aktion nur bei Selektierten Zeilen in Listbox
23.08.2018 15:33:59
Andre_D
Hallo Werner,
top! Läuft!
Vielen Dank.
Gerne u. Danke für die Rückmeldung. o.w.T.
23.08.2018 16:05:09
Werner
Korrektur
23.08.2018 10:47:16
Werner
Hallo Andre,
sehe gerade noch, dass deine Listbox ja 9 Spalten hat. Dann hier bitte
For sp = 0 To 8
Gruß Werner
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige