Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Inhalt der ListBox in Tabelle kopieren

Forumthread: Inhalt der ListBox in Tabelle kopieren

Inhalt der ListBox in Tabelle kopieren
25.06.2008 19:08:23
edie
Hallo zusammen,
habe im Archiv nachfolgende VBA-Code gefunden, dabei wird die
Auswahl in der ListBox in eine neue Tabelle kopiert.

Private Sub cmdEintragen_Click()
Dim wks As Worksheet
Dim rng As Range
Dim iCounter As Integer
Set wks = ActiveSheet
Workbooks.Add
Set rng = ActiveSheet.Range("A1")
For iCounter = 0 To lstAuswahl.ListCount - 1
If lstAuswahl.Selected(iCounter) Then
wks.Rows(iCounter + 1).Copy rng
Set rng = rng.Offset(1, 0)
End If
Next iCounter
End Sub



Private Sub UserForm_Initialize()
lstAuswahl.List = Range("A1") _
.CurrentRegion.Columns("C:D").Value
End Sub


Wie wäre die Syntax, wenn der komplette (ohen Auswahl) Inhalt der ListBox in
eine neue Tabelle kopiert würde?
Kann mir jemand helfen?
Vielen Dank im Voraus.
Grüße

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt der ListBox in Tabelle kopieren
25.06.2008 19:11:51
Hajo_Zi
Hallo edie,
lösche die Zeile
If lstAuswahl.Selected(iCounter) Then
und
End If

AW: Es funktioniert 100%. Vielen Dank.
25.06.2008 19:19:00
edie
Hallo Hajo,
Es funktioniert 100%.
vielen herzlichen Dank.
Grüße
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Inhalt der ListBox in Tabelle kopieren


Schritt-für-Schritt-Anleitung

Um den Inhalt einer ListBox in Excel in eine neue Tabelle zu kopieren, kannst du den folgenden VBA-Code verwenden. Dieser Code kopiert die ausgewählten Elemente der ListBox. Wenn du den gesamten Inhalt ohne Auswahl kopieren möchtest, musst du eine kleine Änderung vornehmen.

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke im Projekt-Explorer mit der rechten Maustaste auf VBAProject (deine_datei.xlsm) und wähle Einfügen -> Modul.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Private Sub cmdEintragen_Click()
       Dim wks As Worksheet
       Dim rng As Range
       Dim iCounter As Integer
       Set wks = ActiveSheet
       Workbooks.Add
       Set rng = ActiveSheet.Range("A1")
       For iCounter = 0 To lstAuswahl.ListCount - 1
           wks.Rows(iCounter + 1).Copy rng
           Set rng = rng.Offset(1, 0)
       Next iCounter
    End Sub
  4. UserForm initialisieren: Füge auch den folgenden Code hinzu, um die ListBox beim Laden des UserForms zu füllen:

    Private Sub UserForm_Initialize()
       lstAuswahl.List = Range("A1").CurrentRegion.Columns("C:D").Value
    End Sub
  5. Code anpassen: Wenn du den gesamten Inhalt der ListBox kopieren möchtest, lösche die Zeilen mit If lstAuswahl.Selected(iCounter) Then und End If aus dem cmdEintragen_Click Sub. Der angepasste Code sieht dann so aus:

    Private Sub cmdEintragen_Click()
       Dim wks As Worksheet
       Dim rng As Range
       Dim iCounter As Integer
       Set wks = ActiveSheet
       Workbooks.Add
       Set rng = ActiveSheet.Range("A1")
       For iCounter = 0 To lstAuswahl.ListCount - 1
           wks.Rows(iCounter + 1).Copy rng
           Set rng = rng.Offset(1, 0)
       Next iCounter
    End Sub
  6. Ausführen: Starte das UserForm und klicke auf den Button, um die Daten in eine neue Tabelle zu kopieren.


Häufige Fehler und Lösungen

  • Fehler: ListBox bleibt leer
    Lösung: Stelle sicher, dass die Range, die du für die ListBox verwendest, korrekt angegeben ist. Überprüfe, ob die Daten in den Spalten C und D vorhanden sind.

  • Fehler: Daten werden nicht kopiert
    Lösung: Vergewissere dich, dass der Code zum Kopieren der Daten korrekt implementiert ist. Achte darauf, dass du die If-Bedingung entfernst, wenn du alle Daten kopieren möchtest.


Alternative Methoden

Eine alternative Methode besteht darin, die Daten direkt aus einer Excel-Tabelle ohne VBA zu kopieren. Dies kann durch das einfache Markieren und Einfügen der Zellen erfolgen. Für eine dynamische Lösung kann jedoch VBA die bessere Wahl sein.


Praktische Beispiele

Angenommen, du hast eine Liste von Produkten in Spalte C und D, die du in eine neue Tabelle kopieren möchtest. Mit dem oben genannten VBA-Code kannst du diese Produkte einfach in eine neue Arbeitsmappe übertragen, ohne jede Auswahl manuell zu treffen.


Tipps für Profis

  • Nutze Range.Copy und Range.PasteSpecial für erweiterte Kopierfunktionen, um Formate oder Formeln zu übernehmen.
  • Experimentiere mit Application.ScreenUpdating = False, um die Performance bei größeren Datenmengen zu verbessern.

FAQ: Häufige Fragen

1. Frage
Wie kann ich den Inhalt der ListBox in die aktuelle Tabelle kopieren?
Antwort: Ändere den Set wks = ActiveSheet im Code zu der gewünschten Tabelle, anstatt eine neue zu erstellen.

2. Frage
Kann ich das Aussehen der ListBox anpassen?
Antwort: Ja, du kannst die Eigenschaften der ListBox im Eigenschaftenfenster des VBA-Editors anpassen, wie z.B. Schriftart und Hintergrundfarbe.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige