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

Dropdown-Feld über Txt-Datei/Ini-Datei füllen

Forumthread: Dropdown-Feld über Txt-Datei/Ini-Datei füllen

Dropdown-Feld über Txt-Datei/Ini-Datei füllen
02.12.2008 09:43:00
Till
Hallo Leute,
mit folgendem String:


    With ComboBox2
        .ColumnCount = 2
        .ColumnWidths = "170pt;0pt"
        .HideSelection = False
        .AddItem "Auswahl des Straßenquerschnittes"
        lngLast = Application.Max(ThisWorkbook.Sheets("DATA").Cells(Rows.Count, 1).End(xlUp).Row, 2)
        For lngRow = 2 To lngLast
            .AddItem ThisWorkbook.Sheets("DATA").Cells(lngRow, 1)
            .List(.ListCount - 1, 1) = ThisWorkbook.Sheets("DATA").Cells(lngRow, 2)
        Next
        ComboBox2.ListIndex = 0
    End With

fülle ich eine Combobox (also ein Dropdown-Feld) , was Werte aus Spalte A und B (kann egal lang sein) aus dem Datenblatt "DATA" einliest.
Jetzt bin ich schon seit längerem auf der Suche, wie diese Abfrage heißen soll, wenn man die Daten in einer Ini-Datei / Txt-Datei stehen hat.
Momentan steht in dem "DATA"-Sheet folgendes (eingelesen wird ab Zeile 2)
Userbild
Diese Txt bzw. Ini-Datei soll natürlich auch beliebig lang sein dürfen.
Kann mir da jemand helfen?
Gruß Till
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dropdown-Feld über Txt-Datei/Ini-Datei füllen
02.12.2008 12:08:26
Oberschlumpf
HI Till
Voraussetzung:
Die txt-Datei existiert schon
Die Daten in der Datei wurden wie folgt gespeichert
VDe 31-01-A1-MB/Ulmenstraße FR Nord;040468FFAEAB920E\aktuell_linie_2021_25012007\
(wichtig ist das Semikolon als Trennzeichen - anstelle dessen könnte auch z Bsp ein Leerzeichen stehen, dann muss aber der Code angepasst werden)
Versuch es mal so (ungetestet):
(sollten Fehler auftreten, schau dir mal die Hilfe zu den einzelnen Befehlen an - kann sein, dass ich mich vielleicht in der Syntax irrte)

Dim lstrInhalt As String, lstrDummy() As String
With ComboBox2
.ColumnCount = 2
.ColumnWidths = "170pt;0pt"
.HideSelection = False
.AddItem "Auswahl des Straßenquerschnittes"
End With
Open "deinPfad\deineTXTDatei" For Input As #1
Do While Not EOF(1)
Line Input #1, lstrInhalt
lstrDummy = Split(lstrInhalt,";")
ComboBox2.AddItem  lstrDummy(0)
ComboBox2.List(.ListCount - 1, 1) = lstrDummy(1)
Loop
Close


Hilft das?
Ciao
Thorsten

Anzeige
AW: Dropdown-Feld über Txt-Datei/Ini-Datei füllen
02.12.2008 12:23:00
Till
Hallo Thorsten,
ja das ist schon mal ein Ansatz.
Leider kommt in der Schleife noch ein Fehler:
"fehler beim kompilieren"
unzulässiger oder nicht ausrechend definierter Verweis
ComboBox2.List(.ListCount - 1, 1) = lstrDummy(1)
Bei .ListCount
Was ist da noch nicht sauber?
Danke schon mal!
Gruß Till
Anzeige
AW: Dropdown-Feld über Txt-Datei/Ini-Datei füllen
02.12.2008 12:39:38
Oberschlumpf
Hi
versuch es mit dieser Zeile:
ComboBox2.List(ComboBox2.ListCount - 1, 1) = lstrDummy(1)
Hilfts?
Ciao
Thorsten
AW: Dropdown-Feld über Txt-Datei/Ini-Datei füllen
02.12.2008 12:40:41
Rudi
Hallo,
ComboBox2.List(ComboBox2.ListCount - 1, 1) = lstrDummy(1)
oder
With ComboBox2
.List(.ListCount - 1, 1) = lstrDummy(1)
End With
Gruß
Rudi
Anzeige
AW: Dropdown-Feld über Txt-Datei/Ini-Datei füllen
02.12.2008 13:20:55
Till
Hallo Leute,
der Fehler kommt jetzt nicht mehr.
Aber leider bleibt jetzt alles hängen.
Und zwar hab ich die Combobox ja auf einer Maske, die automatisch startet (Private Sub UserForm_activate()), wenn ich das Makro aufrufe.
Leider zeigt Excel jetzt ein komplett weißes Feld und der Rechner ackert sich zu Tode.
Vielleicht dauert der Einlesevorgang aus der Txt-Datei zu lange?
Das habe ich (versucht) so zu machen.

    'Combobox2 füllen

    blnAction = False

    With ComboBox2

        .ColumnCount = 2

        .ColumnWidths = "170pt;0pt"

        .HideSelection = False

        .AddItem "Auswahl des Straßenquerschnittes"

    End With

    Open "strassen.txt" For Input As #1

    Do While Not EOF(1)

        Line Input #1, lstrInhalt

        lstrDummy = Split(lstrInhalt, ";")

        ComboBox2.AddItem lstrDummy(0)

        ComboBox2.List(ComboBox2.ListCount - 1, 1) = lstrDummy(1)

    Loop

    Close

    blnAction = True


Ich habe auch schon sämtliche andere Teilmodule überprüft.
Aber bei denen bleibt der Rechner nicht hängen.
Und wenn ich die o.g. Prozedur auskommentiere, öffnet alles wieder ohne Probleme, nur dass die Combobox unausgefüllt bleibt.
Weiß einer Rat?
Gruß Till
Anzeige
AW: Dropdown-Feld über Txt-Datei/Ini-Datei füllen
02.12.2008 14:06:55
Oberschlumpf
Hi Till
Starte das Ganze im VBA-Editor mal im Debug-Modus (F8 Schritt für Schritt) und lass dir die Inhalte der entsprechenden Variablen und(oder Combobox-Inhalte im Überwachungsfenster anzeigen.
Arbeite bei den Tests vielleicht mit einer txt-Datei mit nicht so vielen Einträgen, damit das Wiederholen der Doo-Loop-Schleife nicth so lange dauert.
Hilft das?
Ciao
Thorsten
Anzeige
AW: Dropdown-Feld über Txt-Datei/Ini-Datei füllen
02.12.2008 15:26:00
Till
Hallo Thorsten,
ich habe alles mal in ein seprates Blatt zum Testen kopiert.
Auch hier friert Excel ein und stürzt ab.
Versuch mal das angefügte Blatt (https://www.herber.de/bbs/user/57300.xls) und starte hier die Userform.
Du brauchst noch eine Datei: "strassen.txt"
In "strassen.txt" steht jetzt nur noch folgendes drin:
VDe 11-01-A1/Joseph-Beuys-Ufer;040468FF6A69740E\aktuell_Linie_1011_25012007\
Vielleicht stimmt der Pfad für "strassen.txt" nicht, damit Excel sich das aus dem selben Pfad sucht, wo die xls-Datei auch liegt?
Vielleicht fällt Dir / Euch noch was anderes ein?
Danke schon mal!
Gruß Till
Anzeige
AW: Dropdown-Feld über Txt-Datei/Ini-Datei füllen
03.12.2008 02:25:00
Oberschlumpf
Hi Till
Tausche die Open-Zeile gegen diese aus:

Open ThisWorkbook.Path & "\strassen.txt" For Input As #1


Nun sollte es laufen...oder?
Ach so...die Datei strassen.txt MUSS nun aber im selben Verzeichnis wie die Excel-Datei gespeichert sein.
Ciao
Thorsten

Anzeige
AW: Dropdown-Feld über Txt-Datei/Ini-Datei füllen
03.12.2008 08:40:33
Till
Hallo Thorsten,
ja genau das war es.
Vielen Dank für die nächtliche Antwort!
Gruß Till
AW: Dropdown-Feld über Txt-Datei/Ini-Datei füllen
02.12.2008 14:07:13
Oberschlumpf
Hi
versuch es mit dieser Zeile:
ComboBox2.List(ComboBox2.ListCount - 1, 1) = lstrDummy(1)
Hilfts?
Ciao
Thorsten
AW: Dropdown-Feld über Txt-Datei/Ini-Datei füllen
02.12.2008 15:27:00
Till
https://www.herber.de/bbs/user/57300.xls
Startet so besser
Gruß Till
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Dropdown-Feld mit Daten aus Txt- und Ini-Dateien füllen


Schritt-für-Schritt-Anleitung

Um ein Dropdown-Feld (ComboBox) in Excel mit Werten aus einer Txt- oder Ini-Datei zu füllen, kannst du folgendes VBA-Skript verwenden. Achte darauf, dass die Txt-Datei im richtigen Format gespeichert ist.

  1. Öffne den VBA-Editor (Alt + F11).
  2. Erstelle ein neues Modul.
  3. Füge den folgenden Code ein:
Dim lstrInhalt As String, lstrDummy() As String
With ComboBox2
    .ColumnCount = 2
    .ColumnWidths = "170pt;0pt"
    .HideSelection = False
    .AddItem "Auswahl des Straßenquerschnittes"
End With

Open "deinPfad\deineTXTDatei" For Input As #1
Do While Not EOF(1)
    Line Input #1, lstrInhalt
    lstrDummy = Split(lstrInhalt, ";")
    ComboBox2.AddItem lstrDummy(0)
    ComboBox2.List(ComboBox2.ListCount - 1, 1) = lstrDummy(1)
Loop
Close #1
  1. Passe den Pfad zur Txt-Datei in der Open-Zeile an.
  2. Starte das Makro, um die Werte in das Dropdown-Feld zu laden.

Häufige Fehler und Lösungen

  • Kompilierungsfehler: Wenn du einen Fehler "unzulässiger oder nicht ausreichend definierter Verweis" siehst, stelle sicher, dass du ComboBox2.List(ComboBox2.ListCount - 1, 1) korrekt verwendest.

  • Excel bleibt hängen: Überprüfe, ob die Txt-Datei zu viele Einträge enthält. Teste mit einer kleineren Datei. Du kannst auch im Debug-Modus (F8) arbeiten, um den Fehler zu isolieren.

  • Dateipfad überprüfen: Achte darauf, dass die Txt-Datei sich im gleichen Verzeichnis wie die Excel-Datei befindet. Verwende den Code:

Open ThisWorkbook.Path & "\strassen.txt" For Input As #1

Alternative Methoden

Falls du die Txt-Datei in eine Ini-Datei umwandeln möchtest, kannst du die Datei einfach umbenennen, solange das Format beibehalten wird. Achte darauf, dass das Trennzeichen (z.B. Semikolon) gleich bleibt.

Eine weitere Methode ist die Verwendung von Excel-Tabellen, die du dann ganz einfach in die ComboBox laden kannst.


Praktische Beispiele

Hier ist ein Beispiel für den Inhalt einer Txt-Datei:

VDe 31-01-A1-MB/Ulmenstraße FR Nord;040468FFAEAB920E\aktuell_linie_2021_25012007\

Wenn du diesen Inhalt in die ComboBox lädst, wird im Dropdown-Feld der Wert "VDe 31-01-A1-MB/Ulmenstraße FR Nord" angezeigt, während der sekundäre Wert "040468FFAEAB920E\aktuell_linie_2021_25012007\" im Hintergrund gespeichert wird.


Tipps für Profis

  • Nutze Fehlerbehandlung in deinem VBA-Code, um unerwartete Probleme zu vermeiden. Ein einfaches On Error Resume Next kann helfen, jedoch sollte es mit Bedacht eingesetzt werden.

  • Verwende Datenvalidierung in Excel, um sicherzustellen, dass die Benutzer nur gültige Einträge in das Dropdown-Feld eingeben können.

  • Experimentiere mit dem VBA-Editor, um deine eigenen Funktionen zu erstellen, die die Daten aus der Txt-Datei dynamisch bearbeiten können.


FAQ: Häufige Fragen

1. Wie kann ich die Daten aus einer Ini-Datei in die ComboBox laden?
Die Vorgehensweise ist ähnlich wie bei einer Txt-Datei. Stelle sicher, dass das Format der Ini-Datei mit dem der Txt-Datei übereinstimmt.

2. Kann ich die Werte in der ComboBox bearbeiten?
Ja, du kannst die Werte der ComboBox auch nach dem Laden ändern, indem du den Index der Liste ansteuerst.

3. Was ist der Unterschied zwischen einer Txt- und einer Ini-Datei?
Eine Txt-Datei ist einfach eine Textdatei, während eine Ini-Datei spezifische Formatierungen für Konfigurationsdaten verwendet. In der Praxis kannst du jedoch viele der gleichen Techniken verwenden, um beide Dateitypen zu verarbeiten.

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