Hallo,
ich stehe vor folgendem Problem. Ich möchte aus verschiedenen Text-Dateien einen bestimmten Ausschnitt in Excel importieren. Die Dateien 1.txt, 2.txt … n.txt haben am Anfang der Datei alle den gleichen Aufbau: Header-Infos, dann folgt der interessierende Teil von 15 Zeilen (2 Spalten, per mehrfachen Space getrennt), der Rest der Datei ist unterschiedlich lang (sehr lang).
Das ganze soll so aussehen: In einem Excel-Sheet sollen die Spalte 1 und 2 (Zeile 14-29) der Datei 1.txt in Spalte A und B kopiert werden, die der Datei 2.txt in Spalte C und D usw.
ich habe bei meiner Recherche weder die Möglichkeit gefunden, quasi eine „Endrow“ zu definieren als auch mehrere Dateien (unterschiedliche Anzahl mit wechselnden Dateibezeichnungen) im Batchmodus auszulesen und die entsprechenden Inhalte nebeneinander zu kopieren.
Über eine Hilfe würde ich mich sehr freuen!
Ist zu kompliziert für dieses Board, hoher Programmieraufwand. Langer Code. Mit vielen Umwegen. Viele Rückfragen an Dich notwendig.
Also was für einen Auftrag an einen bezahlten Programmierer.
Sorry.
Hy,
tja, so leid es mir tut, aber das geht dann doch ein bischen über meinen Horizont… Aber viel Glück bei der weiteren Antwort-Suche 
Hallo Uthred009,
falls die Dateinamen wirklich, wie in deinem Text angedeutet, aufsteigende Zahlen als Dateinamen haben, kannst du sie nacheinander innerhalb einer For…Next- Schleife öffnen.
Werden die Dateien in Excel geöffnet, können sie wie eine Excel-Tabelle ausgelesen werden. Der genaue Befehl hierfür ist von deiner Excel-Version abhängig.
Der Zielort für die Kopie kann z.B. über „cells(14, zl)“ variabel gestaltet sein. „zl“ wird dabei nach jedem Kopiervorgang einfach hochgezählt, so dass sich dieser Bereich immer weiter verschiebt.
Viele Grüße
Natator
Hallo,
bevor ich hier große Überlegungen machen würde, würde ich das über die Zwischenablage per Hand machen. Das geht schneller.
Liebe Grüße, viel Erfolg und alles Gute
BFR
Hallo Uthred009,
Dein Problem gliedert sich in folgende Teile:
a) Schleife über Dateien
b) Schleife über Datei-Zeilen (Header, Daten und Rest)
c) Schleife über Excel-Spalten/-Zeilen zum übernehmen
Denkanstoß für a)
Wenn nicht klar ist, welche txt-Dateien vorliegen,
dann kopieren der Dateien in eine separartes Verzeichnis, dieses der Funktion übergeben und mit „Dir“-Kommando auslesen (s. VB-Hilfe)
Denkanstoß für b)
Sub AusleseTest()
Dim intDatNr As Integer
Dim zeile As String
intDatNr = FreeFile
Open „C:\1.txt“ For Input As #intDatNr
Do While EOF(intDatNr) = False
Input #intDatNr, zeile
MsgBox zeile
Loop
Close #intDatNr
End Sub
Denkanstoß für c)
In b) zwei Variable für xlZeile, xlSpalte einführen.
Bei Datei-Wechsel xlSpalte um eins erhöhen
Bei Zeilenwechsel xlZeile um eins erhöhen.
Gruß
Harry
Hallo Uthred009,
schau mal unter folgendem Link nach: „http://www.xlt.de/“ (ohne"").
Dann klicke auf: „Tippecke - Tips & Tricks“.
Dann scrolle zu: „Tipp 7/ Tip 8“
Dort findest du ein kleines Beispiel zu lesen und schreiben einer INI-Datei(Textdatei).
Vielleicht hilft das ein klein bischen weiter.
Sonst kann ich dir nichts anbieten.
mfg Softoldi
Gehen tut viel; was Du Dir vorstellst, ist allerdings ein veritables Projekt. Ich schlage vor, dass Du Dich ein paar Wochen in ein gutes (= Deinem Niveau entsprechendes) VBA-Buch vertiefst und Dich mit konkreten Fragen wieder meldest.
Viel Erfolg!
Hallo,
ich stehe vor folgendem Problem. Ich möchte aus verschiedenen
Text-Dateien einen bestimmten Ausschnitt in Excel importieren.
Die Dateien 1.txt, 2.txt … n.txt haben am Anfang der Datei
alle den gleichen Aufbau: Header-Infos, dann folgt der
interessierende Teil von 15 Zeilen (2 Spalten, per mehrfachen
Space getrennt), der Rest der Datei ist unterschiedlich lang
(sehr lang).
Das ganze soll so aussehen: In einem Excel-Sheet sollen die
Spalte 1 und 2 (Zeile 14-29) der Datei 1.txt in Spalte A und B
kopiert werden, die der Datei 2.txt in Spalte C und D usw.
ich habe bei meiner Recherche weder die Möglichkeit gefunden,
quasi eine „Endrow“ zu definieren als auch mehrere Dateien
(unterschiedliche Anzahl mit wechselnden Dateibezeichnungen)
im Batchmodus auszulesen und die entsprechenden Inhalte
nebeneinander zu kopieren.
hallo,
kann leider nicht helfen, bin kein EXCEL-Spezialist
Viel Glück
Entschuldige die späte Antwort.
Ich kann dir aus dem Stand nur sagen wie das mit Excel Dateien gehen würde.
Ich würde eine Schleife programmieren in Richtung:
dim i as integer
i=1
Do While i maximale Dateianzahl + 1
//Abfragen ob es überhaupt eine Datei mit der aktuellen Nummer gibt. Dateien müssen in selbem Pfad liegen
If Dir(ThisWorkbook.Path & „“ & i & „.xls“) = „“ Then
// DAtei öffnen
Workbooks.Open (ThisWorkbook.Path & „“ & i & „.xls“)
… machen was du machen willst
loop
Für Textdateien müsste das in Richtung
open „i.txt“
gehen. Da solltest du allerdings bei google fündig werden.
Leider kann ich dir nicht genau sagen, wie du die Daten ausliest. Wäre möglich, dass das in Richtung „Lese Zeile“ geht.
Unabhängig davon, wie du das einliest, ist es in deinem Fall wohl wichtig die Daten zu „splitten“.
Dazu solltest du die betreffende(n) Zelle(n) selektieren und anschließend:
Selection.TextToColumns
Ich würde dir empfehlen, falls du dich damit nicht auskennst, die Excel Standard Funktion Text in Spalten zu nutzen und das ganze als Makro aufzuzeichnen. Dann kriegst du auch alle Optionen zum trennen (Trennzeichenauswahl usw.) angezeigt.
Das nebeneinder anordnen scheinst du ja hinbekommen zu haben.
Ach ja, falls dein Header und sonstiges Uninteressantes mitkopiert wird bzw. werden muss, gibt es die Standard Funktion Suchen und Ersetzen, um den Header und Ähnliches rauszukicken. Ich würde empfehlen, dies ebenfalls als Makro auszuzeichnen.
Gerade zu Beginn ist es oft einfacher ein Makro aufzuzeichnen und den Code ggf. zu editieren. Gerade wenn Programmgröße und vor allem die Geschwindigkeit keine Große Rolle spielen.
LG
Sry, kann leider nicht helfen.
Viel Erfolg