kann mir einer verraten bei folgendem Code
ActiveSheet.Select
ActiveSheet.Copy After:=Workbooks(name_neu).Sheets(1)
die Fehlermeldung
'Laufzeitfehler '1004':
Die Blätter können von Excel nicht in die Zielarbeitsmappe eingefügt werden, da sie eine geringere Anzahl von Zeilen und Spalten enthält als die Quellarbeitsmappe. Zum Verschieben oder Kopieren der Daten in die Zielarbeitsmappe können Sie die Daten auswählen und dann mithilfe der Befehle 'Kopieren' und 'Einfügen' in die Blätter einer anderen Arbeitsmappe einfügen.
Und zwar kommt der Fehler exakt dann, wenn die COPY-Zeile ausgeführt wird.
Eigentlich will ich einfach ein vonrhandenes Arbeitsblatt direkt in eine Datei speichern :( Und bis gestern abend lief die Routine noch einwandfrei - da ich die aber aus dem Netz habe, weiss ich nicht wirklich wo da der Fehler liegt...
Kann man das abspeichern eines Blattes direkt in eine Datei evtl. einfacher machen?
Tommi
Sub TabAuslagern(blatt As String, name As String, pfad As String)
Dim name_alt As String
Dim name_neu As String
Dim sht
'name_alt = ThisWorkbook.name - rausgenommen, da bei mir PERSONAL.XLSB übergeben wird
name_alt = ActiveWorkbook.name ' und durch ActiveWorkbook.name ersetzt
Workbooks.Add
name_neu = ActiveWorkbook.name
Windows(name_alt).Activate
Sheets(blatt).Activate
ActiveSheet.Select
ActiveSheet.Copy After:=Workbooks(name_neu).Sheets(1)
' alle anderen Arbeitsblätter entfernen
Windows(name_neu).Activate
Application.DisplayAlerts = False
For Each sht In ActiveWorkbook.Sheets
If UCase(sht.name) UCase(blatt) Then
sht.Delete
End If
Next sht
'speichern
Sheets(blatt).Activate
ActiveWorkbook.SaveAs Filename:=pfad & name, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub