Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
520to524
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
520to524
520to524
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nicht aktuelles Sheet, sondern sheet "Tabelle2"?

Nicht aktuelles Sheet, sondern sheet "Tabelle2"?
24.11.2004 21:01:54
Andi
Hallo!
Habe mit untenstehendem Skript ein kleines Problem. Es öffnet eine txt-Datei und schreibt den Inhalt spaltenweise ins aktuelle Sheet.
Wie ändere ich dieses Skript, dass es mir spaltenweise den Dateiinhalt in das sheet "Tabelle2" schreibt? Hab schon probiert, aber irgendwie verpeil ich das...
https://www.herber.de/bbs/user/13890.xls
Ganz vielen Dank

Sub Read_Extern_File()
'Hilfsvariable für Anzahl Datensätze
Dim Text1 As String
'Variablen für den Array nötig
Dim TxtLines As Long, i As Long
Dim TextArr As Variant
Dim ReadFile As String
'Dialog öffnen auf Basis von *.txt, *.log oder *.dat Files
'ReadFile = Application.GetOpenFilename("DAT Files (*.txt; *.log; *.dat),")
ReadFile = "c:\1.txt"
'Schliessen einer geöffneten Datei
Close #1
'1. Öffnen der Datei
'Den Namen und Pfad bitte anpassen
Open ReadFile For Input As #1
'Die anzahl ist nötig um die Grösse des Arrays zu deklarieren
'Zähler auf 0 setzen
TxtLines = 0
Do While Not EOF(1) ' Schleife bis Dateiende.
Input #1, Text1 ' Hilfsvariable zum einlesen verwenden
'         Zähler hochzählen
TxtLines = TxtLines + 1
Loop
'Schliessen der Datei weil Dateiende erreicht wurde
Close #1
'Erneutes Öffnen um zum Dateianfang zu kommen
Open ReadFile For Input As #1 ' Datei zum Einlesen öffnen.
'Array neu auf die Anzahl der Linien initialisieren
ReDim TextArr(TxtLines)
'Einlesen der Dateien in das Array
For i = 1 To TxtLines
Input #1, TextArr(i)
Next i
Close #1
'Daten in aktuelles Sheet schreiben
For i = 1 To TxtLines
Cells(i, 1) = TextArr(i)
Next i
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=True, Tab:=False, Semicolon _
:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array( _
Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:=True
Range("A1").Select
Cells.Select
Selection.Columns.AutoFit
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nicht aktuelles Sheet, sondern sheet "Tabelle2
Uduuh
Hallo,
ich sehe, du gibst dir Mühe. Habe mal versucht, den Code zu optimieren, kann aber leider nicht testen. Die Antwort auf deine Frage ist in dem With-Rahmen am Ende.

Sub Read_Extern_File()
'Hilfsvariable für Anzahl Datensätze
Dim Text1 As String
'Variablen für den Array nötig
Dim TxtLines As Long  ', i As Long
Dim TextArr()
Dim ReadFile As String
ReDim Preserve TextArr(1)
'Dialog öffnen auf Basis von *.txt, *.log oder *.dat Files
'ReadFile = Application.GetOpenFilename("DAT Files (*.txt; *.log; *.dat),")
ReadFile = "c:\1.txt"
'Schliessen einer geöffneten Datei
Close #1  'warum?
'1. Öffnen der Datei
'Den Namen und Pfad bitte anpassen
Open ReadFile For Input As #1
'Die anzahl ist nötig um die Grösse des Arrays zu deklarieren **Quatsch, siehe unten
'Zähler auf 0 setzen
TxtLines = 1
Do While Not EOF(1) ' Schleife bis Dateiende.
Input #1, TextArr(TxtLines)
TxtLines = TxtLines + 1
ReDim Preserve TextArr(TxtLines)
Loop
'Schliessen der Datei weil Dateiende erreicht wurde
Close #1
'Erneutes Öffnen um zum Dateianfang zu kommen
'Open ReadFile For Input As #1 ' Datei zum Einlesen öffnen.
''Array neu auf die Anzahl der Linien initialisieren
'ReDim TextArr(TxtLines)
''Einlesen der Dateien in das Array
'For i = 1 To TxtLines
'       Input #1, TextArr(i)
'Next i
'Close #1
'Daten in aktuelles Sheet schreiben
With Sheets("Tabelle2")
For i = 1 To TxtLines
.Cells(i, 1) = TextArr(i)
Next i
.Columns("A:A").TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=True, Tab:=False, Semicolon _
:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array( _
Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:=True
'Range("A1").Select
.Cells.Columns.AutoFit
End With
End Sub

Gruß aus'm Pott
Udo

Anzeige
AW: Funktioniert
24.11.2004 21:32:03
Andi
Wow! Funktioniert...
Ich verstehe bloß nicht, warum ich das nicht geschafft habe?! Hatte auch nen with-Rahmen gelegt...
Danke!
AW: Funktioniert
Uduuh
Hallo,
manchmal hängt es an einem . (Punkt)
Gruß aus'm Pott
Udo

AW: Nicht aktuelles Sheet, sondern sheet "Tabelle2"?
Karl-Otto
Hallo Andi
In Deinem 1. Thread hattest Du ein funktionierendes Bsp für Tabelle2.
Userbild
AW: Nicht aktuelles Sheet, sondern sheet "Tabelle2"?
24.11.2004 22:30:40
Andi
Wie krieg ich das denn hin, dass in "Tabelle2" die 1. Zeile frei bleibt und alles ab Zeile 2 beginnend eingefügt wird? Irgendwie ist heut der Wurm drin...
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige