[VBA] Tabellenblätter aktiv setzen und speichern

Basti__1990

Admiral
Registriert
Dez. 2010
Beiträge
9.725
Hallo,

ich möchte in einer großen Excel-Datei mit vielen Tabellenblätter per Makro jedes Tabellenblatt einzeln als neue Excel-Datei speichern. Wenn ich also 5 Tabellenblätter habe, müssen nach dem Makro 5 neue Dateien entstanden seien.
Alle Dateien werden in einem neuen Ordner gespeichert.

Code:
Sub Pfad() 
 Dim Pfad As String 
 Dim Name As String 
 Dim PName As String 
 Dim i As Integer 
  
  
 Pfad = Application.ActiveWorkbook.Path 
 MsgBox Pfad 'nur zum Test
 Pfad = Pfad + "\Auswertung" 
 MkDir Pfad 'Ordner anlegen

  
 For i = 1 To Sheets.Count 

 [B]Sheets(i).Active[/B] 
 Name = ActiveSheet.Name 
 PName = Pfad + Name 
 ActiveSheet.SaveAs PName 
 Next i 
End Sub

An der fett markierten Stelle "Sheets(i).Active" haut er mich immer raus.

Kann mir vielleicht jemand von euch mit eurem unendlichen VBA-Wissen weiter helfen?

Danke!
Gruß Basti
 
Code:
Sheets(i).Activate

und nicht
Sheets(i).Active

Aber das speichert dir immernoch nicht jedes Blatt als extra Datei sondern die Datei i-mal.
 
edit: Leider etwas zu spät ^^

Die Funktion, die du suchst heißt Sheets(i).Activate ...
 
oh ma das mit dem activate ist aber peinlich :(

wenn mir ActiveSheet.SaveAs XXX nicht ein einzelnes Sheet speichert, wie schaff ich es dann?
 
Du musst eine neues Excel Workbook erstellen und das Sheet was du haben möchtest dort in das neue Workbook kopieren und dieses dann speichern.
 
Code:
Sub alle_Tab_als_Datei() 
For i = 1 To ActiveWorkbook.Sheets.Count 
Sheets(i).Copy 
ActiveWorkbook.SaveAs Sheets(1).Name 
ActiveWorkbook.Close 
Next i
End Sub

Das habe ich gerade gefunden, aber dann bekomm ich die Fehlermeldung "Die Copy-Methode es Workbook-Elements konnte nicht ausgeführt werden" :(
 
Zurück
Oben