12.02.2016, 12:19
Hallo,
ich will ein einzelnes Arbeitsblatt mit VBA in einer neuen Mappe abspeichern und die neue Mappe ohne Rückfrage schließen.
In K23 steht eine Rechnungsnummer und damit der Name des einzelnen Blattes und der neuen Mappe.
Mit diesem Code kommt eine Fehlermeldung ("Index außerhalb des gültigen Bereichs") in der Move-Zeile:
Wie wird das richtig formuliert?
Gibt es eine einfachere Lösung?
ich will ein einzelnes Arbeitsblatt mit VBA in einer neuen Mappe abspeichern und die neue Mappe ohne Rückfrage schließen.
In K23 steht eine Rechnungsnummer und damit der Name des einzelnen Blattes und der neuen Mappe.
Mit diesem Code kommt eine Fehlermeldung ("Index außerhalb des gültigen Bereichs") in der Move-Zeile:
With Sheets("RechnungsVorlage")Was mache ich falsch?
.ExportAsFixedFormat 0, "C:\Temp\" & .[K23] & ".pdf" 'Definition des Datei-/Blattnamens, Pfad anpassen!
ActiveSheet.Copy After:=Sheets(Sheets.Count) 'Rechnung wird ans Ende der Tabellen kopiert
ActiveSheet.Name = .[K23] 'Die Kopie wird benannt nach der Rechnungsnummer
ActiveSheet.Shapes("Button 1").Delete 'Schaltfläche in der Kopie wird gelöscht
strDatei = "C:\Temp\" & .[K23] & ".xlsb" 'Definition des Datei-/Blattnamens, Pfad anpassen!
MsgBox (.[K23]) 'Anzeige des Datei-Namens
ActiveWorkbook.Sheets(.[K23]).Move 'hier kommt Fehler "Index außerhalb des gültigen Bereichs"
ActiveWorkbook.SaveAs Filename:="C:\Temp\" & .[K23] & ".xlsb", FileFormat:= _
xlExcel12, CreateBackup:=False 'Abspeichern der neuen Arbeitsmappe
ActiveWindow.Close 'Schließen der neuen Arbeitsmappe
Sheets("RechnungsVorlage").Activate
Wie wird das richtig formuliert?
Gibt es eine einfachere Lösung?