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

textdatei in textbox einlesen

Forumthread: textdatei in textbox einlesen

textdatei in textbox einlesen
21.08.2006 16:13:12
Cold
Ich habe ein Menge Textdateien deren Inhalt ich per userform in ein Tabellenblatt eintrage. Nun wäre es hilfreich, wenn die Daten in einer textbox auf der userform mit erscheinen würden.
nun zu meinen Problem:
1. wie kann ich die betreffende Datei auswählen?
2. wie lade ich dann per makro die Daten in die textbox?
Gruß Cold
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: textdatei in textbox einlesen
21.08.2006 19:04:54
Emilia
Das habe ich hier im Forum gefunden:

Private Sub Importstart()
Dim Text As String, Hfile As Integer, index As Integer
Hfile = FreeFile()
Open sSave For Input As Hfile
For index = 1 To 7
Input #Hfile, Text
UserForm1.Controls("TextBox" & CStr(index)).Text = Text
Next index
Close #Hfile
End Sub

hier kannst du nachlesen !!
Das Forum lebt von Antworten Gruß Emi
Anzeige
AW: textdatei in textbox einlesen
21.08.2006 22:20:33
Peter
Hallo Cold,
z. B. so könnte es gehen:

Private Sub UserForm_Activate()
Dim intZeile  As Integer
Dim intDatei  As Integer
Dim strText   As String
intDatei = FreeFile()
Open "C:\Ein Spatzenpaar.txt" For Input As #intDatei
Do Until EOF(intDatei)
'intZeile = intZeile + 1         ' die gelesenen Zeile zählen
Input #intDatei, strText
'If intZeile = 10 Then Exit Do   ' nur 10 Zeilen lesen
If strText <> "" Then
If TextBox1.Text = "" Then
TextBox1.Text = strText
Else
TextBox1.Text = TextBox1.Text & Chr(10) & strText
End If
End If
Loop
Close #intDatei
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
Danke! und noch eine Frage
24.08.2006 18:50:31
Cold
danke euch beiden!!! klappt hervorragend. nur leider ist die Datei statisch, sprich ich kann sie nicht aussuchen.
ist es möglich das man in eine ListBox aus einem Verzeichnis die Dateinamen direkt einlesen kann?
werde mal im Archiv stöbern, aber glaube nicht das ich damit zurecht komme, da ich nur wenig vom programmieren verstehe.
Danke
Gruß Cold
Anzeige
AW: Danke! und noch eine Frage
25.08.2006 12:13:24
Peter
Hallo Cold,
versuch es einmal so:

Private Sub UserForm_Activate()
Dim intZeile  As Integer
Dim intDatei  As Integer
Dim sFile     As String
Dim strText   As String
sFile = Application.GetOpenFilename("Text Dateien (*.txt), *.txt")
If sFile = "Falsch" Then Exit Sub
intDatei = FreeFile()
Open sFile For Input As #intDatei
Do Until EOF(intDatei)
'intZeile = intZeile + 1         ' die gelesenen Zeile zählen
Input #intDatei, strText
'If intZeile = 10 Then Exit Do   ' nur 10 Zeilen lesen
If strText <> "" Then
If TextBox1.Text = "" Then
TextBox1.Text = strText
Else
TextBox1.Text = TextBox1.Text & Chr(10) & strText
End If
End If
Loop
Close #intDatei
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Textdatei in Textbox einlesen


Schritt-für-Schritt-Anleitung

Um eine Textdatei in eine Textbox auf einer UserForm in Excel einzulesen, kannst Du die folgenden Schritte befolgen:

  1. Erstelle eine UserForm: Öffne den VBA-Editor (Alt + F11) und füge eine neue UserForm hinzu.
  2. Füge eine TextBox hinzu: Ziehe eine TextBox aus der Toolbox auf die UserForm.
  3. Füge ein CommandButton hinzu: Ziehe einen Button auf die UserForm, um den Import der Textdatei zu starten.
  4. Code hinzufügen:
    • Doppelklicke auf den Button, um das Codefenster zu öffnen.
    • Verwende den folgenden Code, um eine Textdatei auszuwählen und den Inhalt in die TextBox einzulesen:
Private Sub CommandButton1_Click()
    Dim intDatei As Integer
    Dim strText As String
    Dim sFile As String

    sFile = Application.GetOpenFilename("Text Dateien (*.txt), *.txt")
    If sFile = "Falsch" Then Exit Sub

    intDatei = FreeFile()
    Open sFile For Input As #intDatei
    Do Until EOF(intDatei)
        Input #intDatei, strText
        If TextBox1.Text = "" Then
            TextBox1.Text = strText
        Else
            TextBox1.Text = TextBox1.Text & Chr(10) & strText
        End If
    Loop
    Close #intDatei
End Sub
  1. Starte die UserForm: Du kannst die UserForm über einen Button oder direkt im VBA-Editor starten.

Häufige Fehler und Lösungen

  • Fehler: Datei nicht gefunden: Stelle sicher, dass der Dateipfad korrekt ist und die Datei existiert.
  • Fehler: Falsche Datei ausgewählt: Überprüfe, dass Du eine .txt-Datei auswählst, da der Code speziell für .txt lesen konzipiert ist.
  • Fehler: TextBox bleibt leer: Vergewissere Dich, dass die Textdatei nicht leer ist und dass das richtige Steuerelement angesprochen wird.

Alternative Methoden

Eine alternative Methode könnte die Verwendung einer ListBox sein, um mehrere Dateien anzuzeigen und auszuwählen. Dies könnte so implementiert werden:

  1. Füge eine ListBox zur UserForm hinzu.
  2. Verwende den folgenden Code, um die Dateinamen aus einem Verzeichnis in die ListBox zu laden:
Private Sub UserForm_Initialize()
    Dim fileName As String
    Dim folderPath As String
    folderPath = "C:\DeinVerzeichnis\" ' Ändere dies zu deinem Verzeichnis

    fileName = Dir(folderPath & "*.txt")
    Do While fileName <> ""
        ListBox1.AddItem fileName
        fileName = Dir
    Loop
End Sub
  1. Wähle eine Datei aus der ListBox aus und lade den Inhalt in die TextBox.

Praktische Beispiele

Wenn Du den oben genannten Code verwendest, kannst Du beispielsweise eine Textdatei wie "C:\Ein Spatzenpaar.txt" einlesen. Der Inhalt wird dann in der TextBox angezeigt. Dies ist nützlich, wenn Du große Mengen an Textdateien hast, die Du effizient verwalten möchtest.


Tipps für Profis

  • Fehlerbehandlung: Implementiere Fehlerbehandlung, um sicherzustellen, dass das Programm bei unerwarteten Eingaben nicht abstürzt.
  • Datenvalidierung: Überprüfe, ob der Inhalt der Textdatei dem erwarteten Format entspricht, bevor Du ihn in die TextBox einfügst.
  • Speicheroptimierung: Bei großen Dateien kann es sinnvoll sein, den Text in Blöcken zu lesen, um Speicher zu sparen.

FAQ: Häufige Fragen

1. Wie kann ich eine Textdatei ohne Benutzerinteraktion einlesen?
Du kannst den Dateipfad direkt im Code angeben, anstatt einen FileDialog zu verwenden.

2. Kann ich auch CSV-Dateien einlesen?
Ja, die Methode ist ähnlich, Du musst jedoch sicherstellen, dass Du die Daten korrekt analysierst, da CSV-Dateien oft durch Kommas getrennt sind.

3. Funktioniert das auch in Excel für Mac?
Ja, der VBA-Code sollte in Excel für Mac funktionieren, vorausgesetzt, Du hast Zugriff auf den VBA-Editor. Achte darauf, die Dateipfade entsprechend anzupassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige