Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

zellen in Listbox einlesen

Forumthread: zellen in Listbox einlesen

zellen in Listbox einlesen
18.01.2004 18:39:00
helge
hallo,
kann mir jemand ein beispiel geben wie ich Zellen einer Zeile in eine Listbox bekomme?
Grund ist, ich will danach in der listbox den jeweiligen Inhalt der Zelle anklicken und alle zellen im tabellenblatt die darunterliegen markieren.
vielen dank schon im voraus
helge
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zellen in Listbox einlesen
18.01.2004 19:20:01
Jens
Hallo
Ich hoffe mal dich richtig verstanden zu haben.
Sub Listbox_mit_Zeile1_fuellen()
Dim a As Byte
ListBox1.Clear 'Löschen des Listboxinhaltes
For a = 1 To Range("IV1").End(xlToLeft).Column 'von Spalte 1 bis letzte Spalte
ListBox1.AddItem Cells(1, a).Value
Next a
End Sub

Auf Doppelklick die Zellen unter der Zelle die in der Listbox gewählt ist markieren.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Spaltennamen As String
Dim a As Byte
Spaltennamen = ListBox1
For a = 1 To Range("IV1").End(xlToLeft).Column
If Cells(1, a).Value = Spaltennamen Then
Range(Cells(2, a), Cells(Cells(65536, a).End(xlUp).Row, a)).Select
End If
Next a
End Sub

Ich hoffe das es dir einwing bei deinen Problem hilft.
Gruß Jens
Anzeige
AW: zellen in Listbox einlesen
18.01.2004 19:49:59
helge
hallo jens,
ich hab da jetzt glaub ich ein grundlegendes problem.
sehe ich das richtig dass ich erstmal in mein tabellenblatt eine listbox anlegen muss mit dem namen ListBox1, und dann im vba in Module deinen code einfüge???
denn es kommt ein fehler bei ListBox1.Clear und bei ListBox1.AddItem
P.S. ich benutze Excel 2002
Anzeige
AW: zellen in Listbox einlesen
18.01.2004 19:53:55
Jens
Hi
Richtig... ich hab als Beispiel eine Listbox in ein Tabellenblatt eingefügt.
Du hattest ja nicht geschrieben wo du die Listbox hast. (andere Tabelle, Userform)
Wenn du eine Listbox einfügest sollte diese schon den Namen "ListBox1" bekommen.
Das ListBox1.Clear dient nur dazu das bei einen wiederholten aufruf die alten Spalten erstmal gelöscht werde.
Gruß jens
Anzeige
er sagt mir Object erforderlich??? o.T.
18.01.2004 20:02:11
helge
AW: er sagt mir Object erforderlich??? o.T.
18.01.2004 20:42:27
Jens
Hi
Wer und Wo... Gehe mal mit F8 das Programm step für step durch so solltest du sehen wo der Fehler ist.
Gibt es jetzt eine ListBox1, ist der Code in der Tabelle (nicht in einen Modul).
Gruß Jens
klappt nicht !!!
18.01.2004 21:26:52
helge
also ich leg mir in einem tabellenblatt ein listenfeld an
dann gehe ich in vba und füge in das tabellenblatt den code von dir ein
dann kommt der Laufzeitfehler 424 Objekt erforderlich an der stelle wo steht ListBox.Clear
ich weiss nicht wie du das ganze gemacht hast ???
vielleicht einen tip?
mfg andreas
Anzeige
AW: klappt nicht !!!
18.01.2004 22:06:29
Ulf
Nicht: ListBox.Clear
sondern: richtiger_Name_der_Listbox.Clear
Ulf
;
Anzeige

Infobox / Tutorial

Zellen in Listbox einlesen und markieren


Schritt-für-Schritt-Anleitung

  1. Listbox erstellen:

    • Öffne Excel und wechsle in den Entwicklermodus.
    • Füge eine Listbox in dein Tabellenblatt ein. Stelle sicher, dass sie den Namen ListBox1 hat.
  2. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Doppelklicke auf das Tabellenblatt, in dem sich deine Listbox befindet.
  3. VBA-Code einfügen:

    • Füge den folgenden Code in das Codefenster des Tabellenblatts ein:
    Sub Listbox_mit_Zeile1_fuellen()
       Dim a As Byte
       ListBox1.Clear 'Löschen des Listboxinhaltes
       For a = 1 To Range("IV1").End(xlToLeft).Column 'von Spalte 1 bis letzte Spalte
           ListBox1.AddItem Cells(1, a).Value
       Next a
    End Sub
  4. Doppelklick-Funktion hinzufügen:

    • Füge den folgenden Code für die Doppelklick-Funktion hinzu:
    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
       Dim Spaltennamen As String
       Dim a As Byte
       Spaltennamen = ListBox1
       For a = 1 To Range("IV1").End(xlToLeft).Column
           If Cells(1, a).Value = Spaltennamen Then
               Range(Cells(2, a), Cells(Cells(65536, a).End(xlUp).Row, a)).Select
           End If
       Next a
    End Sub
  5. Makro ausführen:

    • Schließe den VBA-Editor und kehre zu deinem Excel-Blatt zurück.
    • Führe das Makro Listbox_mit_Zeile1_fuellen aus, um die Listbox mit den Werten der ersten Zeile zu füllen.

Häufige Fehler und Lösungen

  • Laufzeitfehler 424: Objekt erforderlich:

    • Stelle sicher, dass die Listbox den richtigen Namen hat. Wenn du z.B. ListBox1 verwendest, aber sie anders benannt ist, erhältst du diesen Fehler. Überprüfe den Namen der Listbox im Eigenschaftenfenster.
  • Listbox wird nicht gefüllt:

    • Achte darauf, dass der Code im richtigen Modul (Tabellenblatt und nicht in einem allgemeinen Modul) eingefügt wird.

Alternative Methoden

  • UserForm verwenden: Anstatt eine Listbox direkt im Tabellenblatt zu verwenden, kannst du eine UserForm erstellen, die eine Listbox enthält. Der Code bleibt ähnlich, jedoch wird die Listbox über das UserForm gesteuert.

  • Datenübertragung mit Dropdown: Wenn du nur eine Auswahl benötigst, könntest du auch ein Dropdown-Menü statt einer Listbox in Betracht ziehen.


Praktische Beispiele

Angenommen, du hast eine Tabelle mit den Werten in der ersten Zeile von A1 bis F1. Du möchtest diese Werte in der Listbox anzeigen und beim Doppelklick die entsprechenden Zellen von A2 bis F(n) markieren.

  1. Füge den Code für die Listbox ein.
  2. Führe das Makro aus, um die Listbox zu füllen.
  3. Doppelklicke auf einen Wert in der Listbox, um die entsprechenden Zellen zu markieren.

Tipps für Profis

  • Zellen dynamisch füllen: Du kannst den Code anpassen, um die Listbox mit Werten aus einem anderen Bereich zu füllen, z.B. aus einer anderen Tabelle oder einem bestimmten Datenbereich.

  • Formatierung: Überlege, wie du die Listbox formatieren kannst, um die Benutzererfahrung zu verbessern. Du kannst die Größe anpassen oder den Hintergrund ändern.


FAQ: Häufige Fragen

1. Wo finde ich den VBA-Editor? Der VBA-Editor kann durch Drücken von ALT + F11 geöffnet werden.

2. Kann ich die Listbox auch in einer UserForm verwenden? Ja, du kannst eine UserForm erstellen und eine Listbox hinzufügen. Der Code bleibt ähnlich, wird jedoch im Kontext der UserForm ausgeführt.

3. Warum funktioniert der Code nicht in Excel 2002? Der Code sollte auch in Excel 2002 funktionieren, solange die Listbox korrekt benannt ist und die Objekte im richtigen Modul sind. Achte darauf, dass du die richtige Version von Excel verwendest.

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