Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1296to1300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Office2000, funktioniert nicht mehr in 2007

VBA Office2000, funktioniert nicht mehr in 2007
31.01.2013 15:26:05
Name
Hallo Excel Profis!
Ich verwende in einer Arbeitsmappe folgenden Code um alle Abeitsblätter einzeln in einen Ordner zu speichern. Unter Office2000 funtionierte es super. Bin jetzt nach Office2007 gewechselt und es wird "400" angezeigt.
Die Mappe ist als *.xlm gespeichert.
Sub AllSheetSpeichern()
Dim WS As Worksheet
Dim Path As String
Dim Wb As String
Path = ActiveWorkbook.Path & "\einzeln\"
Wb = ActiveWorkbook.Name
For Each WS In ThisWorkbook.Worksheets
WS.Copy
ActiveWorkbook.SaveAs Filename:= _
Path & WS.Name & "-" & Wb, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close
Next
End Sub

Danke für die Hilfe!
mfg, Andreas

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Office2000, funktioniert nicht mehr in 2007
31.01.2013 15:32:29
haw
Hallo Andreas,
das FileFormat ist seit xl2007 anders. Bei normaler Speicherung ist kein FileFormat notwendig.
Daher wie folgt:
Sub AllSheetSpeichern()
Dim WS As Worksheet
Dim Path As String
Dim Wb As String
Path = ActiveWorkbook.Path & "\einzeln\"
Wb = ActiveWorkbook.Name
For Each WS In ThisWorkbook.Worksheets
WS.Copy
ActiveWorkbook.SaveAs Filename:= _
Path & WS.Name & "-" & Wb
ActiveWorkbook.Close
Next
End Sub

Gruß Heinz

AW: VBA Office2000, funktioniert nicht mehr in 2007
31.01.2013 15:40:13
Andreas
Hallo Heinz!
Danke für die Hilfe, funktioniert aber immer noch nicht. Immer noch Fehler 400.
mfg, Andreas

Anzeige
Laufzeitfehler ......
31.01.2013 15:46:40
Andreas
Hallo!
Habe gerade den Code im Einzelschritt durchgeführt. Bei
ActiveWorkbook.SaveAs Filename:=
wird der Laufzeitfehler 1004 angezeigt.
mfg, Andreas

AW: Laufzeitfehler ......
31.01.2013 16:21:13
Daniel
Hi
soweit ich weiß, muss man ab Excel 2007 den Dateityp explizit angeben und es sind andere als in den Versionen davor.
ActiveWorkbook.Save Filename:=Path & WS.Name & "-" & wb, FileFormat = 51
was jetzt das passende Format (xls, xlsx, xlsm, xlsb) ist, musst du wissen, wie die passende FileFormatnummer dazu aussieht, kannst du in der Hilfe nachlesen oder mit dem Recorder rausfinden.
ggf kann es noch sinnvoll sein, die Punkte und Dateiextensions aus dem Dateinamen zu entfernen und nur die Automatische vom Save-As zu verwenden.
falls du sowohl in 2003 als auch in 2007 arbeitest, musst du wahrscheinlich mit Application.Version die Versionsnummer ermitteln und ggf das SaveAs je nach Version unterschiedlich ausführen.
Gruß Daniel
Gruß Daniel

Anzeige
AW: Laufzeitfehler ......
31.01.2013 16:26:14
fcs
Hallo Andreas,
ergänzend zu den Hinweisen von daniel solltest du auch eine Prüfung einbauen, ob das Verzeichnis \einzeln\ schon existiert und ggf. vom Makro anlegen lassen.
Gruß
Franz
Sub AllSheetSpeichern()
Dim WS As Worksheet
Dim Path As String
Dim Wb As String
Dim lngFileformat As Long
Path = ActiveWorkbook.Path & "\einzeln\"
lngFileformat = ActiveWorkbook.FileFormat
lngFileformat = 51 'Blätter-Dateien ohne Makros im 2007/2010 Format speichern
If Dir(Left(Path, Len(Path) - 1), vbDirectory) = "" Then
VBA.MkDir Path:=Left(Path, Len(Path) - 1)
End If
Wb = ActiveWorkbook.Name
Wb = Left(Wb, InStrRev(Wb, ".") - 1)
For Each WS In ThisWorkbook.Worksheets
WS.Copy
ActiveWorkbook.SaveAs Filename:= _
Path & WS.Name & "-" & Wb, FileFormat:=lngFileformat
ActiveWorkbook.Close
Next
End Sub

Anzeige
Vielen Dank Euch beiden!
31.01.2013 16:40:17
Andreas
Hallo,
Funktioniert bestens, Danke.
mfg, Andreas

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige