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

Daten, die in Listbox markiert wurden in Tabellenblatt übernehmen

Daten, die in Listbox markiert wurden in Tabellenblatt übernehmen
14.11.2019 09:52:48
Marc
Hallo zusammen,
ich habe eine Anforderung bekommen, bei der ich überhaupt keine Ahnung habe, wie ich diese umsetzen soll...
Mit viel Google habe ich herausgefunden, wie man eine Listbox mit Daten aus einer Tabelle füllt und wie man dann dort mehrere Einträge markieren kann.
Nun möchte ich gerne, dass die Markierten Einträge aus der Ursprungstabelle (Start) in die Zieltabelle (Ziel) übertragen werden.
Ich fülle die ListBox mit folgendem Code:
Private Sub UserForm_Initialize()
Dim intAnzahlDerListboxSpalten As Integer
Dim letztezeile As String
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
intAnzahlDerListboxSpalten = 5
ListBox1.MultiSelect = 1
ListBox1.ColumnCount = intAnzahlDerListboxSpalten
ListBox1.RowSource = "Start!A2:E" & letztezeile
End Sub
Wie gesagt, die markierten Einträge sollen dann aus der Tabelle Start (Spalten A:N) in die Tabelle Ziel (Spalten C:P) kopiert werden.
Geht das überhaupt?
Danke für Eure Hilfe!
Lieben Gruß
Marc

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten, die in Listbox markiert wurden in Tabellenblatt übernehmen
14.11.2019 10:02:12
Hajo_Zi
Hallo Marc,
in der Art
        For LoI = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(LoI) Then
's = s & ListBox1.List(i)
' Beispiel nur Spalte 1
.Cells(LoLetzte + 1, 1) = ListBox1.List(LoI, 0)
LoLetzte = LoLetzte + 1
End If
Next LoI

AW: Daten, die in Listbox markiert wurden in Tabellenblatt übernehmen
14.11.2019 10:10:09
Marc
Hallo Hajo,
leider verstehe ich Deinen Code nicht und wenn ich den einfach nur kopiere läuft er auf einen Fehler bei der Zeile .Cells(LoLetzte + 1, 1) = ListBox1.List(LoI, 0) ... :(
---------------------------
Microsoft Visual Basic for Applications
---------------------------
Fehler beim Kompilieren:
Unzulässiger oder nicht ausreichend definierter Verweis
---------------------------
OK Hilfe
---------------------------
Kannst Du mir da bitte nochmal helfen?
Danke!
Lieben Gruß
Marc
Anzeige
AW: Daten, die in Listbox markiert wurden in Tabellenblatt übernehmen
14.11.2019 10:13:22
Hajo_Zi
ja Du hast kein With auf die Tabelle. Entferne den Punkt.
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Gruß Hajo
AW: Daten, die in Listbox markiert wurden in Tabellenblatt übernehmen
14.11.2019 10:09:18
Beverly
Hi Marc,
z.B. so:
Private Sub CommandButton1_Click()
Dim lngZiel As Long
Dim lngIndex As Long
lngZiel = Worksheets("Ziel").Columns(1).Find(What:="*", _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
With Worksheets("Start")
For lngIndex = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(lngIndex) Then
.Range(.Cells(lngIndex + 2, 1), .Cells(lngIndex + 2, 14)).Copy _
Worksheets("Ziel").Cells(lngZiel, 3)
lngZiel = lngZiel + 1
End If
Next lngIndex
End With
End Sub


Anzeige
AW: Daten, die in Listbox markiert wurden in Tabellenblatt übernehmen
14.11.2019 10:13:20
Marc
Hallo Beverly,
ja krass!! GENAU so....
Vielen, vielen Dank!!!!!!
Leider verstehe ich es nicht. Aber es bringt mich massiv weiter!!
Code mit Kommentaren...
14.11.2019 10:20:27
Beverly
Hi Marc,
...damit du besser nachvollziehen kannst weshalb was wie abläuft:
Private Sub CommandButton1_Click()
Dim lngZiel As Long
Dim lngIndex As Long
' letzte belegte Zeile in Ziel-Tabelle
lngZiel = Worksheets("Ziel").Columns(1).Find(What:="*", _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
With Worksheets("Start")
' Schleife über alle ListBox-Einträge
For lngIndex = 0 To ListBox1.ListCount - 1
' laufender Eintrag ist markiert
If ListBox1.Selected(lngIndex) Then
' Zellbereich laufender Eintrag + 2 Spalte A bis N nach Zieltabelle kopieren
' laufender Eintrag + 2 ergibt sich daraus, dass der ListIndex bei 0 und
' deine Daten ab Zeile 2 beginnen
.Range(.Cells(lngIndex + 2, 1), .Cells(lngIndex + 2, 14)).Copy _
Worksheets("Ziel").Cells(lngZiel, 3)
' Zielzeile um 1 erhöhen
lngZiel = lngZiel + 1
End If
Next lngIndex
End With
End Sub


Anzeige
AW: Code mit Kommentaren - Korrektur...
14.11.2019 10:24:35
Beverly
Hi Marc,
der Kommentar ' letzte belegte Zeile in Ziel-Tabelle muss korrekt heißen ' erste freie Zeile in Ziel-Tabelle - hat aber selbstverständlich keinen Einfluss auf den Code da nur Kommentar. ;-)


AW: Code mit Kommentaren...
14.11.2019 10:32:39
Marc
Danke liebe Karin!!!
Jetzt wird es (ein bisschen) klarer!! :)
AW: Code mit Kommentaren...
14.11.2019 10:32:42
Marc
Danke liebe Karin!!!
Jetzt wird es (ein bisschen) klarer!! :)
Ausgewählte Listbox-Zeilen kopieren
14.11.2019 10:14:08
NoNet
Hallo Marc,
schau Dir das angehängte Beispiel mal an.
https://www.herber.de/bbs/user/133203.xlsm
Falls etwas unklar ist : Bitte nachfragen ;-)
Salut, NoNet

Hast Du Interesse, andere Excel-Begeisterte kennenzulernen ? - Dann komme zum

Exceltreffen 12.-14.06.2020 in Freiberg/Sachsen

http://www.exceltreffen.de/index.php?page=291


Anmeldungen sind noch bis 31.03.2020 möglich ! - Schau doch mal rein !

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige