abuelito
Goto Top

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

Content-Key: 272650

Url: https://administrator.de/contentid/272650

Ausgedruckt am: 19.03.2024 um 03:03 Uhr

Mitglied: 114757
114757 22.05.2015 aktualisiert um 08:53:25 Uhr
Goto Top
ich habe folgendes Problem:
Wo ist hier das Problem face-smile ?
for each sheet in Worksheets
  if sheet.Range("A1").Value <> "" then  
     sheet.Range("E1").Value = sheet.Name  
  end if
Next
Gruß jodel32

p.s. wie wär's langsam mal mit einem VBA Grundkurs ?
Mitglied: abuelito
abuelito 22.05.2015 um 09:06:43 Uhr
Goto Top
Hi Jodel,

vielen Dank, aber springt der Code dann in die nächste Zeile (A2, A3, usw.) und schaut, ob da auch ein Eintrag ist?

PS: mache den Kurs ab Juni face-smile

Grüße
Mitglied: 114757
114757 22.05.2015 aktualisiert um 09:20:42 Uhr
Goto Top
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.

Also Versuchs nochmal mit ein paar mehr Worten, Danke face-smile

-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
Mitglied: abuelito
abuelito 22.05.2015 um 10:01:30 Uhr
Goto Top
Super, vielen lieben Dank.

Eine Frage habe ich noch:

Wenn ich jetzt mehrere Dateien in einem Ordner habe, die vom Aufbau her gleich sind, kann ich diese auch in das obige Makro integrieren?

Beispiel:

- alle Dateien via VBA nacheinander öffnen und jeweils das obige Makro ausführen
- anschließend Datei schließen und mit dem Tabellenblattname speichern .. als .xls
- nächste Datei öffnen usw.

Vielen Dank

Grüße
Mitglied: 114757
114757 22.05.2015 um 10:07:08 Uhr
Goto Top
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 face-smile
Schnipsel es dir später noch zusammen, muss jetzt aber erst mal weg .

Bis später.
Jodel
Mitglied: abuelito
abuelito 22.05.2015 um 10:08:37 Uhr
Goto Top
Danke Dir mein Lieber face-smile

Bis später
Mitglied: 114757
Lösung 114757 22.05.2015 aktualisiert um 12:07:31 Uhr
Goto Top
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.
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
Ist ja hier kein Wunschkonzert face-wink

Thema des Titel ist ja nun abgehandelt, also gelöst nicht vergessen.

Gruß jodel
Mitglied: abuelito
abuelito 22.05.2015 um 12:07:35 Uhr
Goto Top
Hallo Jodel,

passt alles wunderbar ... vielen lieben Dank.

Grüße