Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
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
Inhaltsverzeichnis

Import txt-Dateiname gleich Arbeitsmappe

Import txt-Dateiname gleich Arbeitsmappe
08.05.2016 15:05:35
Alex
Hallo zusammen,
kann mir jemand evtl. weiterhelfen ?
ich habe in einem Pfad mehrere Txt-Datein nach folgenden Muster (siehe link)
Diese möchte ich gern in eine excel Arbeitsmappe mit der gleichen Bezeichnung wie die TXT-Datei importieren. sprich import aus Pfad Hase_123.txt in Sheet Hase_123 trennzeichen semikomma). Anschließend soll die Datei aus dem Pfad gelöscht werden, und bei dem nächsten import überschrieben werden.
https://www.herber.de/bbs/user/105446.txt
als Ansatz habe ich das mal gefunden:
Nur bekomme ich das mit dem vergleichen txt-Dateiname mit Bezeichnung Arbeitsmappe nicht hin.
Vielen Dank im Voraus. :-)
Sub all_import()
Dim strFile As String
Dim strData As String
Dim strDaten, arrTmp
Const cstrFolder As String = "F:\HTM\Protokolle\Eingespielt\"  'anpassen
Worksheets("BG_Freigabe").Select
Application.ScreenUpdating = False
strFile = Dir(cstrFolder & "BG_Frei*.txt")
With Worksheets("BG_Freigabe") 'anpassen
Do While strFile  ""
Open cstrFolder & strFile For Input As #1
Do While Not EOF(1)
Line Input #1, strData
.Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = strData
Loop
Close #1
Kill cstrFolder & strFile 'Datei löschen
strFile = Dir
Loop
End With
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Import txt-Dateiname gleich Arbeitsmappe
08.05.2016 18:38:14
Michael
Hi Alex,
stecke das Ding in ein allg. Modul:
Option Explicit
Sub all_import()
Dim strFile As String
Dim strData As String
Dim arrTmp As Variant
Dim sh As Worksheet
Dim zeile As Long
Const cstrFolder As String = "F:\HTM\Protokolle\Eingespielt\"  'anpassen
' Alle Blätter außer Master löschen
Application.DisplayAlerts = False
For Each sh In Worksheets
If sh.Name  "Master" Then sh.Delete
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = False
strFile = Dir(cstrFolder & "BG_Frei*.txt") ' Hasen?
Do While strFile  ""
Sheets.Add After:=Sheets(Sheets.Count)
Set sh = ActiveSheet
sh.Name = Left(strFile, Len(strFile) - 4)
zeile = 1
Open cstrFolder & strFile For Input As #1
Do While Not EOF(1)
Line Input #1, strData
arrTmp = Split(strData, ";")
sh.Range("A" & zeile).Resize(1, UBound(arrtmp) + 1) = arrTmp
zeile = zeile + 1
Loop
Close #1
'      Kill cstrFolder & strFile 'Datei löschen
strFile = Dir
Loop
End Sub

Achtung: Alle Blätter außer "Master" werden gelöscht; hier mußt die Abfrage nach Bedarf auf weitere Blätter erweitern.
Getestet hab ich's nicht; laß es halt mal mit F8 zeilenweise laufen...
Schöne Grüße,
Michael

Anzeige
AW: Import txt-Dateiname gleich Arbeitsmappe
08.05.2016 20:22:07
Alex
Hallo Michael,
vielen dank erstmal.
ich hab das soweit mal ausprobiert, nur löscht er mir alle sheets ausser das Master.
es soll die Txt-Datei mit dem Namen Hase_123.txt in das Sheet Hase_123 importieren und immer wieder überschreiben. Die Txt-Dateien werden täglich erzeugt und soll in das entsprechende sheet eingespielt werden. Hab es selber mal versucht ob ich damit weiterkomme aber meine VBA Kenntnisse sind nicht so toll.
Sub all_import()
Dim strFile As String
Dim strData As String
Dim arrTmp As Variant
Dim sh As Worksheet
Dim zeile As Long
Const cstrFolder As String = "C:\Users\Hase\Desktop\test\"  'anpassen
' Alle Blätter außer Master löschen
Application.DisplayAlerts = False
For Each sh In Worksheets
If sh.Name = strData.Name Then
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = False
strFile = Dir(cstrFolder & "*Hase_123.txt") ' Hasen?
Do While strFile  ""
Sheets.Add After:=Sheets(Sheets.Count)
Set sh = ActiveSheet
sh.Name = Left(strFile, Len(strFile) - 4)
zeile = 1
Open cstrFolder & strFile For Input As #1
Do While Not EOF(1)
Line Input #1, strData
arrTmp = Split(strData, ";")
sh.Range("A" & zeile).Resize(1, UBound(arrTmp) + 1) = arrTmp
zeile = zeile + 1
Loop
Close #1
'      Kill cstrFolder & strFile 'Datei löschen
strFile = Dir
Loop
End Sub

Anzeige
AW: Import txt-Dateiname gleich Arbeitsmappe
08.05.2016 21:23:05
Michael
Hi Alex,
wenn Du immer wieder überschreibst, kannst Du auch löschen und neu anlegen - damit habe ich mir Umwege gespart, zu überprüfen, ob ein bestimmtes Blatt da ist oder nicht.
Wenn Du andere Blätter von der Löschung ausnehmen möchtest, mußt Du das hier ergänzen:
If sh.Name  "Master" And sh.Name  "DasNichtUsw" Then sh.Delete
Mach halt erst mal einen

Sub test_import()
Dim strFile As String
Const cstrFolder As String = "C:\Users\Hase\Desktop\test\"  'anpassen
strFile = Dir(cstrFolder & "*Hase_123.txt")
Do While strFile  ""
MsgBox strFile
strFile = Dir
Loop
End Sub
um zu sehen, ob überhaupt Datein gefunden werden, dann sehen wir weiter.
Schöne Grüße,
Michael

Anzeige
AW: Import txt-Dateiname gleich Arbeitsmappe
08.05.2016 22:55:26
Alex
Hallo Michael,
also die Daten findet er, auch das mit dem nicht löschen habe ich soweit hinbekommen, nur will ich ca. 15 Sheets in der Excel-Liste nicht löschen dementsprechend ist der Satz ziehmlich lang,
aber soweit würd das funktionieren. Wenn ich diese Sheets immer gleich heißen und die Txt Dateien auch, kann man diese nicht irgendwie überschreiben.
Vielen Dank nochmals.
Gruß
Alex

AW: Import txt-Dateiname gleich Arbeitsmappe
09.05.2016 17:53:05
Michael
Hi Alex,
ok, kann ich ändern, aber ich muß Dich auf morgen vertrösten - vielleicht springt ja jemand anderes ein.
Aber sag mal, wenn ich mir Deine Fragen so ansehe, habe ich das Gefühl, Du benutzt Excel, um zunächst eine Reihe Textdatein zu importieren, um sie dann wiederum in *eine* Textdatei zu exportieren.
Das geht übrigens in der Kommandozeile mit nur einem Befehl (dem markierten):
Userbild
Copy kopiert alle Datein aus dem Ordner "einz", die mit"t" anfangen und die Endung ".txt" haben in die eine Datei "text_ges.txt", wovon man sich mit type überzeugen kann.
Wenn Du sonst keine Auswertungen oder irgendwas in Excel machst, kann man diesen Befehl zur Not auch von Excel aus aufrufen.
Schöne Grüße,
Michael

Anzeige
AW: Import txt-Dateiname gleich Arbeitsmappe
09.05.2016 22:25:11
Alex
Hallo Michael,
vielen lieben Dank.
da kann ich noch einiges von dir lernen :-)
Ja, es gibt eine Master Excel-Liste da importiere ich die exportierten txt-Dateien und Werte sie dann in excel aus. Ich habe das Makro jetzt mal so integriert, nur falls ich mal irgendwann mal eine neue Mappe erstelle und das vergesse im Makro zu ändern wird sie gelöscht.
Danke nochmals :-)
Gruß
Alex

wie versprochen...
11.05.2016 15:23:39
Michael
Hi Alex,
ich habe die Funktion mal etwas angepaßt, damit keine Blätter gelöscht werden und das Ganze in eine Datei gepackt: https://www.herber.de/bbs/user/105508.xlsm

Anzeige
AW: wie versprochen...Nachtrag
11.05.2016 15:25:59
Michael
ups, falscher Button...
Naja, eigentlich war's das ja auch...
Happy Exceling, vielen Dank für die Rückmeldung, roger, over & Gruß,
Michael

AW: wie versprochen...Nachtrag
13.05.2016 21:49:06
Alex
vielen Dank Michael, Supi :-)

gerne, vielen Dank für die Rückmeldung
14.05.2016 13:24:11
Michael
Gruß,
Michael

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige