Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
512to516
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textfile einlesen

Textfile einlesen
08.11.2004 16:23:17
siegbert
Hallo liebe Excelgemeinde,
ich hab ein Problem mit dem ich mich schon lange herumschlage, aber keine Lösung finde.Ich möchte gern eine Textdatei (Trennzeichen: ";") in Excel einlesen, dabei aber selektiv vorgehen (sonst zu groß); d.h. ich möchte Satz für Satz entscheiden können, ob ich ihn nehme oder nicht. Hat jemand eine Idee, wie ich die Einleseroutine abfassen muß, damit nicht der ganze File eingelesen wird ?
lg Siegbert

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

Betreff
Datum
Anwender
Anzeige
AW: Textfile einlesen
08.11.2004 17:31:20
Josef
Hallo Siegbert!
Probier mal das.
Option Explicit

Sub Daten_Einlesen_Spezial()
'Daten aus Textdatei Zeilenweise mit rückfrage einlesen
Dim strText As String, strFile As String, strMeldung As String
Dim lngLine As Long, lngC As Long, lngCalc As Long
Dim wks As Worksheet
With Application
lngCalc = .Calculation
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
On Error GoTo FEHLER
lRow = 1
Set wks = Sheets("Tabelle3") 'Tabelle in die geschrieben wird - anpassen
strFile = Application.GetOpenFilename("Textdateien (*.txt; *.log; *.dat; *.fre),*.txt; *.log; *.dat; *.fre")
If strFile = "Falsch" Then Exit Sub
Close #1
'Öffnen und die Anzahl der zeilen fesstellen
Open strFile For Input As #1
lngLine = 0
Do While Not EOF(1)
Input #1, strText
lngLine = lngLine + 1
Loop
Close #1 'Schliessen
'Öffnen und Daten schreiben
Open strFile For Input As #1
For lngC = 1 To lngLine
Input #1, strText
strMeldung = MsgBox(strText, vbYesNoCancel + vbQuestion, "Auswahl")
If strMeldung = vbYes Then
Cells(lngC, 1) = strText
ElseIf strMeldung = vbCancel Then
Exit For
End If
Next lngC
Close #1
Columns(1).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, Semicolon:=True, Space:=True, Other:=True, FieldInfo:=Array(1, 1)
wks.Columns.AutoFit
FEHLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = lngCalc
End With
End Sub

Gruß Sepp
Anzeige
kleine Korrektur.
08.11.2004 21:07:08
Josef
Hallo Siegbert!
Ich hab' noch einen kleinen Fehler entdeckt.
Option Explicit

Sub Daten_Einlesen_Spezial()
'Daten aus Textdatei Zeilenweise mit rückfrage einlesen
Dim strText As String, strFile As String, strMeldung As String, strFrage As String
Dim lngLine As Long, lngC As Long, lRow As Long, lngCalc As Long
Dim wks As Worksheet
strFrage = "Soll die folgende Zeile übernommen werden?" & vbLf & "Zeile "
With Application
lngCalc = .Calculation
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
On Error GoTo FEHLER
lRow = 1
Set wks = Sheets("Tabelle3") 'Tabelle in die geschrieben wird - anpassen
strFile = Application.GetOpenFilename("Textdateien (*.txt; *.log; *.dat; *.fre),*.txt; *.log; *.dat; *.fre")
If strFile = "Falsch" Then Exit Sub
Close #1
'Öffnen und die Anzahl der zeilen fesstellen
Open strFile For Input As #1
lngLine = 0
Do While Not EOF(1)
Input #1, strText
lngLine = lngLine + 1
Loop
Close #1 'Schliessen
'Öffnen und Daten schreiben
Open strFile For Input As #1
For lngC = 1 To lngLine
Input #1, strText
strMeldung = MsgBox(strFrage & lngC & " von " & lngLine & vbLf & _
vbLf & strText, vbYesNoCancel + vbQuestion, "Auswahl")
If strMeldung = vbYes Then
Cells(lRow, 1) = strText
lRow = lRow + 1
ElseIf strMeldung = vbCancel Then
Exit For
End If
Next lngC
Close #1
Columns(1).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, Semicolon:=True, Space:=True, Other:=True, _
FieldInfo:=Array(1, 1)
wks.Columns.AutoFit
FEHLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = lngCalc
End With
End Sub

Gruß Sepp
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige