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

Forumthread: ListBox in Textbox übertragen

ListBox in Textbox übertragen
17.03.2006 20:31:40
Stephan
Hallo ihr experten,
Wie kan ich die daten in meiner ListBox, mit einem oder doppelklick, in die verschiedenen TextBox einfügen?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ListBox in Textbox übertragen
17.03.2006 21:31:50
Oberschlumpf
Hallo Stephan
Deine Frage:
Wie kan ich die daten in meiner ListBox, mit einem oder doppelklick, in die verschiedenen TextBox einfügen?
meine Idee:
https://www.herber.de/bbs/user/31996.xls
in diesem Bsp wird bei Anklicken irgendeiner Zelle in Tabelle 1 eine Userform geöffnet.
In der Userform sind 1 Listbox und 3 Textboxen vorhanden.
Da du nicht schreibst, welche Daten in der Listbox enthalten sind, wird die Listbox bei jedem Öffnen mit den Namen aller vorhandener Tabellenblätter gefüllt.
Und bei einem Doppelklick auf die Listbox werden nacheinander die Textboxen mit dem Wert gefüllt, welches du zuvor in der Listbox doppelt angeklickt hast.
Nun kannst Du das Bsp an deine Bedürfnisse anpassen.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: ListBox in Textbox übertragen
17.03.2006 21:51:01
Stephan
Hallo Thorsten,
Ich habe in der Listbox verschiedene zeilen, 8 felder die in textboxen müssen.
Eine möchte ich doppelklicken und in die textbox eintragen.
Dim z As Long
Dim i As Long, n As Long, tmpCount As Long
z = Cells(Rows.Count, 1).End(xlUp).Row
With ListBox1
.ColumnCount = 8
.ColumnWidths = "2,2cm;3,5cm;4cm;1,8cm;1,5cm;3cm;0,5cm;1,8cm"
For i = 2 To z
If Rows(i).Hidden = False Then
'Die nächste zeile vergleicht den inhalt der zelle 9 von den gefilterten zeilen
If Cells(i, 9) = "" Then
.AddItem Cells(i, 1)
tmpCount = .ListCount - 1
For n = 1 To 7
.List(tmpCount, n) = Cells(i, n + 1)
Next n
End If
End If
Next i
End With
End Sub
Anzeige
AW: ListBox in Textbox übertragen
18.03.2006 10:41:56
Oberschlumpf
Hallo Stephan
Versuch es mal mit diesem Bsp:
https://www.herber.de/bbs/user/32002.xls
Ich habe deine Spaltenbreiten übernommen.
Da ich nicht weiß, welche Daten in der Listbox stehen, habe ich die Zeilen/Spalten-Koordinaten eingetragen, die so gemeint sind:
Z1Sp1 = Zeile 1 Spalte 1 ...usw
Ein Doppelklick in eine beliebige Zeile der Listbox überträgt die Werte aus den 8 Spalten der Listbox in die 8 einzelnen Textfelder.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: ListBox in Textbox übertragen
19.03.2006 00:28:23
Stephan
Super Danke.
MFG Stephan
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

ListBox-Daten in TextBoxen übertragen


Schritt-für-Schritt-Anleitung

Um die Daten aus einer ListBox in verschiedene TextBoxen zu übertragen, kannst du die folgende Schritt-für-Schritt-Anleitung verwenden. Diese Anleitung ist für Excel-VBA-Nutzer geeignet.

  1. Erstelle eine UserForm: Öffne den VBA-Editor (Alt + F11) und füge eine neue UserForm hinzu. Platziere eine ListBox und mehrere TextBoxen (z.B. 8) auf der UserForm.

  2. Fülle die ListBox: Verwende den folgenden VBA-Code, um die ListBox mit Werten zu füllen. Dieser Code geht davon aus, dass deine Daten in einer Excel-Tabelle stehen.

    Dim z As Long
    Dim i As Long, n As Long, tmpCount As Long
    z = Cells(Rows.Count, 1).End(xlUp).Row
    With ListBox1
       .ColumnCount = 8
       .ColumnWidths = "2,2cm;3,5cm;4cm;1,8cm;1,5cm;3cm;0,5cm;1,8cm"
       For i = 2 To z
           If Rows(i).Hidden = False Then
               If Cells(i, 9) = "" Then
                   .AddItem Cells(i, 1)
                   tmpCount = .ListCount - 1
                   For n = 1 To 7
                       .List(tmpCount, n) = Cells(i, n + 1)
                   Next n
               End If
           End If
       Next i
    End With
  3. Doppelklick-Ereignis hinzufügen: Füge einen Doppelklick-Event für die ListBox hinzu, um die ausgewählten Daten in die TextBoxen zu übertragen.

    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
       Dim selectedIndex As Long
       selectedIndex = ListBox1.ListIndex
       If selectedIndex <> -1 Then
           TextBox1.Value = ListBox1.List(selectedIndex, 0)
           TextBox2.Value = ListBox1.List(selectedIndex, 1)
           TextBox3.Value = ListBox1.List(selectedIndex, 2)
           ' ... Wiederhole dies für alle TextBoxen
       End If
    End Sub
  4. Testen der UserForm: Starte die UserForm und teste, ob die Daten beim Doppelklick in die TextBoxen übertragen werden.


Häufige Fehler und Lösungen

  • Fehler: ListBox zeigt keine Daten an
    Lösung: Stelle sicher, dass der Code zur Befüllung der ListBox korrekt ausgeführt wird und keine versteckten Zeilen filtern die Daten.

  • Fehler: Keine Übertragung der Werte bei Doppelklick
    Lösung: Überprüfe den Doppelklick-Event und stelle sicher, dass der Index der ListBox korrekt abgerufen wird.


Alternative Methoden

Wenn du keine UserForm verwenden möchtest, kannst du auch VBA in einem regulären Arbeitsblatt verwenden. Du kannst eine ListBox auf einem Arbeitsblatt erstellen und mit VBA die Werte in TextBoxen auf dem Arbeitsblatt übertragen. Dabei ist die Vorgehensweise ähnlich, jedoch benötigst du keine UserForm.


Praktische Beispiele

Ein praktisches Beispiel könnte folgendermaßen aussehen:

  1. Daten in ListBox: Angenommen, du hast eine Liste von Kundendaten in einer Excel-Tabelle. Du kannst diese Daten in eine ListBox laden und beim Doppelklick in die entsprechenden TextBoxen für Name, Adresse und Telefonnummer übertragen.

  2. VBA-Code für spezifische Daten:

    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
       Dim selectedIndex As Long
       selectedIndex = ListBox1.ListIndex
       If selectedIndex <> -1 Then
           TextBox1.Value = ListBox1.List(selectedIndex, 0) ' Name
           TextBox2.Value = ListBox1.List(selectedIndex, 1) ' Adresse
           TextBox3.Value = ListBox1.List(selectedIndex, 2) ' Telefonnummer
       End If
    End Sub

Tipps für Profis

  • Verwende Error Handling, um mögliche Laufzeitfehler abzufangen, die während der Datenübertragung auftreten können.
  • Nutze die .Value-Eigenschaft der TextBoxen, um sicherzustellen, dass die Daten korrekt übertragen werden.
  • Erstelle eine dynamische UserForm, die sich an die Anzahl der Spalten anpasst, um mehr Flexibilität zu haben.

FAQ: Häufige Fragen

1. Wie kann ich die Breite der ListBox-Spalten anpassen?
Du kannst die .ColumnWidths-Eigenschaft der ListBox verwenden, um die Breiten der Spalten in Zentimetern oder anderen Maßeinheiten zu definieren.

2. Funktioniert dies in allen Excel-Versionen?
Ja, die oben genannten Schritte und der VBA-Code sind in den meisten modernen Excel-Versionen anwendbar. Stelle sicher, dass du VBA aktivierst, um die UserForm nutzen zu können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige