Dateinamen in Excel auslesen und in Zelle einfügen
Schritt-für-Schritt-Anleitung
Um den Dateinamen einer geöffneten Excel-Datei auszulesen und in eine Zelle zu schreiben, kannst Du den folgenden VBA-Code verwenden. Dieser Schritt-für-Schritt-Leitfaden zeigt Dir, wie Du das umsetzen kannst:
- Öffne Excel und drücke
ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
- Füge ein neues Modul ein, indem Du auf
Einfügen > Modul klickst.
- Kopiere den folgenden Code in das Modul:
Sub DateinameInZelle()
Dim Erfolg1 As Boolean
MsgBox "Bitte aktuelle Auswertung auswählen"
Erfolg1 = Application.Dialogs(xlDialogOpen).Show(arg1:=".xlsx")
If Not Erfolg1 Then
MsgBox "Keine Datei ausgewählt"
Else
With ThisWorkbook.Sheets("SBM")
' Daten kopieren
Cells.Copy .Range("A1")
' Dateiname in Zelle E4 einfügen
.Range("E4") = ActiveWorkbook.Name
End With
ActiveWorkbook.Close False
End If
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Führe das Makro aus, indem Du
ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.
Du solltest nun den Dateinamen der geöffneten Datei in Zelle E4 deiner Arbeitsmappe sehen.
Häufige Fehler und Lösungen
Alternative Methoden
Du kannst den Dateinamen auch ohne VBA auslesen, indem Du die folgende Excel-Formel verwendest:
=ZELLE("Dateiname", A1)
Diese Formel gibt den vollständigen Dateipfad und den Dateinamen zurück. Um nur den Dateinamen anzuzeigen, kannst Du die Funktion RECHTS und FINDEN kombinieren:
=RECHTS(ZELLE("Dateiname", A1);LÄNGE(ZELLE("Dateiname", A1))-FINDEN("[";ZELLE("Dateiname", A1))-1)
Praktische Beispiele
Ein praktisches Beispiel für das Auslesen des Dateinamens wäre, eine Datei zu öffnen, deren Daten in eine Master-Datei zu kopieren und gleichzeitig den Dateinamen für die spätere Referenz zu speichern.
Nehmen wir an, Du hast eine Datei namens Umsatzbericht_01012023.xlsx. Wenn Du dieses Skript ausführst, wird der Dateiname in Zelle E4 deiner Master-Datei erscheinen:
Umsatzbericht_01012023.xlsx
Tipps für Profis
- Wenn Du die Dateinamen mehrerer Dateien auslesen möchtest, erwäge eine Schleife, die über alle geöffneten Arbeitsmappen iteriert.
- Speichere den Dateinamen in einer Variablen, um ihn später in Deinem Skript wiederzuverwenden. Zum Beispiel:
Dim dateiname As String
dateiname = ActiveWorkbook.Name
- Denke daran, Deine Makros regelmäßig zu testen, um sicherzustellen, dass sie in verschiedenen Excel-Versionen funktionieren.
FAQ: Häufige Fragen
1. Wie kann ich den Dateinamen in eine andere Zelle einfügen?
Du kannst den Zellbezug in der Zeile .Range("E4") = ActiveWorkbook.Name anpassen, um den Dateinamen in eine beliebige Zelle einzufügen.
2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.
3. Kann ich den vollständigen Pfad des Dateinamens auslesen?
Ja, anstelle von ActiveWorkbook.Name kannst Du ActiveWorkbook.FullName verwenden, um den vollständigen Pfad und den Dateinamen zu erhalten.