Excel Tabellenblattname in Zelle schreiben
Hallo an Alle,
ich habe folgendes Problem:
Ich habe eine Exceltabelle immer mit unterschiedlichen Zeilen und möchte gerne den Tabellenblattname mit VBA auslesen und in eine Zelle schreiben.
Wenn A1 einen Wert besitzt, also nicht leer sein sollte, dann in Zelle E1 den Tabellenblattnamen eintragen, usw.
Vielen Dank
Grüße
ich habe folgendes Problem:
Ich habe eine Exceltabelle immer mit unterschiedlichen Zeilen und möchte gerne den Tabellenblattname mit VBA auslesen und in eine Zelle schreiben.
Wenn A1 einen Wert besitzt, also nicht leer sein sollte, dann in Zelle E1 den Tabellenblattnamen eintragen, usw.
Vielen Dank
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 272650
Url: https://administrator.de/forum/excel-tabellenblattname-in-zelle-schreiben-272650.html
Ausgedruckt am: 30.01.2025 um 18:01 Uhr
8 Kommentare
Neuester Kommentar
ich habe folgendes Problem:
Wo ist hier das Problem ?for each sheet in Worksheets
if sheet.Range("A1").Value <> "" then
sheet.Range("E1").Value = sheet.Name
end if
Next
p.s. wie wär's langsam mal mit einem VBA Grundkurs ?
Zitat von @abuelito:
vielen Dank, aber springt der Code dann in die nächste Zeile (A2, A3, usw.) und schaut, ob da auch ein Eintrag ist?
Das hast du dann nicht ausführlich genug beschrieben, ich hab das so interpretiert das das Makro alle Sheets der Arbeitsmappe durchgehen soll und jeweils nur A1 auf Inhalt prüft und bei Inhalt den Namen in E1 schreibt.vielen Dank, aber springt der Code dann in die nächste Zeile (A2, A3, usw.) und schaut, ob da auch ein Eintrag ist?
Also Versuchs nochmal mit ein paar mehr Worten, Danke
-tante edit- Ich glaub du meinst das dann eher so
for each cell in ActiveSheet.Range("A1:A" & Cells(Rows.Count,"A").End(xlUp).Row)
if cell.Value <> "" then
cell.offset(0,4).Value = ActiveSheet.Name
end if
Next
Wenn ich jetzt mehrere Dateien in einem Ordner habe, die vom Aufbau her gleich sind, kann ich diese auch in das obige Makro integrieren?
Naturalemente Schnipsel es dir später noch zusammen, muss jetzt aber erst mal weg .
Bis später.
Jodel
Pfade in Zeilen 4 und 5 und Dateifilter in Zeile 9 anpassen. Was klar sein sollte ist das kein Tabellenblattname doppelt vorkommt und die Namen keine Sonderzeichen wie doppelpunkt etc. haben.
Das kann man natürlich alles abfangen, aber dir das jetzt alles hier zu verklickern, nö keine Böcke (das wurde hier im Forum schon x mal abgehandelt, einfach mal die Suchfunktion anwerfen) ...Mach erst mal deinen Kurs.
Ist ja hier kein Wunschkonzert
Thema des Titel ist ja nun abgehandelt, also gelöst nicht vergessen.
Gruß jodel
Das kann man natürlich alles abfangen, aber dir das jetzt alles hier zu verklickern, nö keine Böcke (das wurde hier im Forum schon x mal abgehandelt, einfach mal die Suchfunktion anwerfen) ...Mach erst mal deinen Kurs.
Sub ProcessFiles()
Dim wb As Workbook, cell As Range, datei As String
Set fso = CreateObject("Scripting.FileSystemObject")
Const PATHIN = "C:\temp\dateien"
Const PATHOUT = "C:\temp\dateien\ausgabe"
If Not fso.FolderExists(PATHOUT) Then
MkDir (PATHOUT)
End If
datei = Dir(PATHIN & "\*.xls")
Do While datei <> ""
Set wb = Workbooks.Open(PATHIN & "\" & datei)
With wb.Sheets(1)
For Each cell In .Range("A1:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
If cell.Value <> "" Then cell.Offset(0, 4).Value = .Name
Next
strNewName = PATHOUT & "\" & .Name & "." & fso.GetExtensionName(datei)
wb.SaveAs strNewName
wb.Close
End With
datei = Dir
Loop
End Sub
Thema des Titel ist ja nun abgehandelt, also gelöst nicht vergessen.
Gruß jodel