Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1476to1480
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

Dateiname auslesen bzw. anzeigen

Dateiname auslesen bzw. anzeigen
02.03.2016 12:09:19
Stephan
Hallo
in meiner Excel Tabelle lese ich mir externe Daten ein
über Daten, aus Text und dann die entsprechende Textdatei auswählen,
klappt auch wunderbar,
es sind viele Textdatei und viele Abfragen am Tag,
ich kann nicht erkennen welche Textdatei ich gerade eingelesen habe,
kann man den Dateinamen der abgerufenen Textdatei auch auslesen bzw. anzeigen?
eventuell auch über Makro,
ich habe schon viel recherchiert aber diese Ergebnisse haben dann immer nur den Namen meiner Excel Tabelle angezeigt,
wie diese heißt weiß ich,
aber nicht den der Textdatei,
könnte da jemand mir weiter helfen?
Danke
BG

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiname auslesen bzw. anzeigen
02.03.2016 12:40:52
Steve
Hallo Stephan,
dies wäre beispielhaft ein Code zum Importieren. Dabei wird die gewählte Datei in der Variable "myFileAddress " gespeichert und du kannst dir das in eine Zelle schreiben, oder vergleichbares.
Sub Dateiimport()
Dim myFileAddress As Variant
Application.ScreenUpdating = False
Application.Calculation = xlManual
Const StandardVerzeichnis = "C:\"
' Standard-Verzeichnis festlegen
ChDrive Left(StandardVerzeichnis, 1)
ChDir StandardVerzeichnis
' Dateiimport
myFileAddress = Application.GetOpenFilename("Log-Dateien (*.log), *.log")
If myFileAddress = False Then GoTo Finish
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & myFileAddress, Destination:=Range("A2"))
.Name = myFileAddress
'…  Optionen am besten über Makro-Rekorder und manuelles Importieren ermitteln und einfü _
gen (auf deine Datei anpassen)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 852
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 2, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.Delete 'Query im Namensmanager und unter Verbindungen wieder entfernen
End With
Range("A1") = CStr(myFileAddress) 'Dateinamen merken
Finish:
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
End Sub
lg Steve

Anzeige
AW: Dateiname auslesen bzw. anzeigen
02.03.2016 14:21:20
Stephan
Hallo Steve
leider bin ich mit VBA nicht so vertraut,
ich habe deinen Code mit einigen Daten aktualisiert Code erweitert,
mein Makro in fett und kirsuv eingefügt,
wenn ich die neue Textdatei einfügen muß diese immer in G1 beginnen
der Name der Textdatei kann auch in z.Bsp. A25 stehen
mit A25 funktioniert bei dir auch super,
aber der Rest irgendwie nicht
Danke
Sub Dateiimport()
Dim myFileAddress As Variant
Application.ScreenUpdating = False
Application.Calculation = xlManual
Const StandardVerzeichnis = "angepasst\"
' Standard-Verzeichnis festlegen
ChDrive Left(StandardVerzeichnis, 1)
ChDir StandardVerzeichnis
' Dateiimport
myFileAddress = Application.GetOpenFilename("Text-Dateien (*.txt), *.txt")
If myFileAddress = False Then GoTo Finish
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & myFileAddress, Destination:=Range(" _
G1")
.Name = myFileAddress
 ActiveSheet.Unprotect
ActiveWorkbook.RefreshAll
Range("R3:R249").Select
Selection.ClearContents
Range("R3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
'…  Optionen am besten über Makro-Rekorder und manuelles Importieren ermitteln und einfü _
_
gen (auf deine Datei anpassen)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 852
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 2, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.Delete 'Query im Namensmanager und unter Verbindungen wieder entfernen
End With
Range("A1") = CStr(myFileAddress) 'Dateinamen merken
Finish:
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
End Sub

Anzeige
AW: Dateiname auslesen bzw. anzeigen
02.03.2016 15:19:54
Steve
Hallo Stephan,
ich habe deinen Code mal an die richtigen Stellen verschoben. Du hast im Prinzip nur den Blattschutz aufgehoben und den Bereich gesäubert, das muss nach der Auswahl der Datei, aber vor dem Import erfolgen. Den Blattschutz wieder zu aktivieren darf natürlich erst hinterher geschehen:
Sub Dateiimport()
Dim myFileAddress As Variant
Application.ScreenUpdating = False
Application.Calculation = xlManual
Const StandardVerzeichnis = "angepasst\"
' Standard-Verzeichnis festlegen
ChDrive Left(StandardVerzeichnis, 1)
ChDir StandardVerzeichnis
' Dateiimport
myFileAddress = Application.GetOpenFilename("Text-Dateien (*.txt), *.txt")
If myFileAddress = False Then GoTo Finish
'Blattschutz aufheben, Bereich säubern
ActiveSheet.Unprotect
Range("R3:R249").ClearContents
ActiveWorkbook.RefreshAll
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & myFileAddress, Destination:=Range("G1"))
.Name = myFileAddress
'…  Optionen am besten über Makro-Rekorder und manuelles Importieren ermitteln
'und einfügen (auf deine Datei anpassen)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 852
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 2, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.Delete 'Query im Namensmanager und unter Verbindungen wieder entfernen
End With
Range("A25") = CStr(myFileAddress) 'Dateinamen merken
'Blattschutz setzen
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Finish:
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
End Sub
lg Steve

Anzeige
AW: Dateiname auslesen bzw. anzeigen
03.03.2016 08:43:40
Stephan
Hallo Steve
Danke, klappt sehr gut, mit dem Blattschutz hätte ich aber selber dran denken können,
noch eine Frage,
der Dateiname wird mir in voller Länge angezeigt, d.h. der komplette Pfad E:\.......\.txt
lässt sich nur der Name anzeigen?
meine Text Dateien können so aussehen
# 01-01-01-0001
# Z01 001 01 00 1
# 01-01-01-0002_EK-B
ich habe da eine Formel um mir die Zahlen in der Zelle A25 auszulesen,
# {=TEIL(LINKS(A25;MAX(ISTZAHL(TEIL(A25;SPALTE(1:1);1)*1)*SPALTE(1:1)));VERGLEICH(1;ISTZAHL(TEIL(A25&0;SPALTE(1:1);1)*1)*1;0);LÄNGE(A25))}
da erscheinen aber nur die Zahle und nicht wenn nötig auch das "Z oder _E-KB"
und das wäre ebene wichtig
und daher die Frage wegen nur dem Namen ohne Pfad
Danke
BG

Anzeige
AW: Dateiname auslesen bzw. anzeigen
03.03.2016 09:05:33
Steve
Hallo Stephan,
da du nur Txt-Dateien zur Auswahl zugelassen hast kann man sich das einfach machen:
Range("A25") = Left(myFileAddress, InStrRev(myFileAddress, ".txt") - 1)
lg Steve

AW: Dateiname auslesen bzw. anzeigen
03.03.2016 09:16:18
Stephan
Hallo Steve
habe deinen veränderten Code eingefügt
aber leider keine Veränderung,
immer noch der ganz Pfad
BG
Stephan

AW: Dateiname auslesen bzw. anzeigen
03.03.2016 09:25:16
Steve
Ups,
entschuldige, da war ich zu blöd zwei Zeilen zu kopieren:
myFileAddress = Dir(myFileAddress)
Range("A25") = Left(myFileAddress, InStrRev(myFileAddress, ".txt") - 1)
lg Steve

Anzeige
AW: Dateiname auslesen bzw. anzeigen
03.03.2016 09:37:05
Stephan
Hi
super perfekt Danke,
genau was ich gesucht habe,
noch mal Danke schön
BG Stephan

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige