Betrifft: .txt-Datein in eine Spalte integrieren
von: Jonas
Geschrieben am: 03.02.2010 11:59:32
Hallo zusammen,
Ich habe einen Ordner mit knapp 3.000 .txt-Dateien. Um die Daten mit einem externen Programm weiterzuverarbeiten, benötige ich sie in einer Excel-Tabelle. Pseudoprogammierungstechnisch bin ich auf der Suche nach einem Makro, welches eine .txt-Datei aus einem Ordner auswählt, den Inhalt in der zweiten (!) Spalte/ersten Zeilen der Excel-Tabelle abspeichert (und zwar nur in diesem Kästchen, nicht über die komplette Arbeitsmappe), dann auf die nächste .txt-Datei des Ordners geht, den Inhalt in der zweiten Spalte/zweiten Zeile abspeichert, die nächste .txt dann in der zweiten Spalte, dritten Zeile usw.
Habe folgenden Eintrag im Forum bereits gefunden:
https://www.herber.de/forum/archiv/964to968/t964875.htm
So ähnlich stelle ich mir das vor, nur dass die .txt-Dateien nicht jede einzeln in einem neuen Tabellenblatt abgespeichert werden sollen, sondern alle in einem Tabellenblatt, in der gleichen Spalte in einer neuen Spalte!
Vielen, vielen Dank im Voraus.
Jonas
Betrifft: prinzipiell so
von: Rudi Maintaire
Geschrieben am: 03.02.2010 12:42:51
Hallo,
die Texte dürfen natürlich nicht zu lang sein.
Sub ttt() Dim sFile As String, sText As String Const spfad As String = "c:\Test\" sFile = Dir(spfad & "*.txt") Do While sFile <> "" Open spfad & sFile For Input As #1 sText = Input(LOF(1), 1) With Sheets(1) .Cells(Rows.Count, 2).End(xlUp).Offset(1) = sText End With Close 1 sFile = Dir Loop End Sub
Betrifft: AW: prinzipiell so
von: Jonas
Geschrieben am: 03.02.2010 14:01:43
Hallo Rudi,
zunächst einmal vielen Dank für deine Antwort. Ich habe dein Makro ausprobiert, es funktioniert aber leider nicht wirklich. Speziell sitze ich aktuell vor dem Problem, dass ich nicht weiß, wie man die .txt-Dateien "aufruft".
Im Forum habe ich (wie bereits beschrieben) folgenden Code gefunden....
Sub Alle_Textdateien() strExt = "*.txt" 'Dateiextension ggf. anpassen ZuÖffnendeDatei = Application.GetOpenFilename("Textdateien (" & strExt & "), " & strExt, _ Title:="Verzeichnisauswahl, erste Datei auswählen") If ZuÖffnendeDatei = False Then Exit Sub 'Die ausgewählte Datei ist egal. es wird hier nur das Verzeichnis der Datei ausgewertet strPath = CurDir & "\" If strPath = "" Then Exit Sub Else ChDir strPath strFile = Dir(strPath & strExt) 'hier wird die erste Datei gefunden Do While Len(strFile) > 0 Workbooks.OpenText Filename:=strPath & strFile, DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, _ Tab:=True, Semicolon:=False, Comma:=False, _ Space:=True, Other:=False, trailingMinusNumbers:=True Sheets(1).Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) '...weiter mit Änderungen an der Tabelle '... strFile = Dir() ' nächste Datei Loop End If End SubDas coole hieran ist speziell der erste Part, dass man nach Starten des Makros gefragt wird, mit welcher .txt-Datei man starten will. Sowas ähnliches bräuchte ich auch für mein Problem, nur dass es anschließend die .txt-Datein nicht jedes einzelne in einem einzelnen Blatt abspeichert, sondern alle in einem Blatt und jeweils einem Feld....
Betrifft: Anpassung
von: Rudi Maintaire
Geschrieben am: 03.02.2010 14:23:22
Hallo,
Sub ttt() Dim sFile As String, sText As String, sPfad As String With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Ordner wählen" .AllowMultiSelect = False .InitialFileName = "c:\Test\" 'anpassen oder weg lassen .InitialView = 2 If .Show = -1 Then sPfad = .SelectedItems(1) End If End With If sPfad <> "" Then sFile = Dir(sPfad & "*.txt") Do While sFile <> "" Open sPfad & sFile For Input As #1 sText = Input(LOF(1), 1) With Sheets(1) .Cells(Rows.Count, 2).End(xlUp).Offset(1) = sText End With Close 1 sFile = Dir Loop End If End Sub
Betrifft: AW: Anpassung
von: Jonas
Geschrieben am: 03.02.2010 15:19:02
Hallo Rudi,
Vielen Dank für deine Hilfe, hast mir sehr geholfen!