Microsoft Excel

Herbers Excel/VBA-Archiv

Fehler 1004 | Herbers Excel-Forum


Betrifft: Fehler 1004 von: Steve
Geschrieben am: 11.02.2012 19:58:01

Hallo,

Ich habe ein kleines problem mit Win7.

Bei folgendem schritt bekomme ich einen fehler:


    ActiveWorkbook.SaveAs verzeichnis & "\" & DateiName
    ActiveWorkbook.Save

un zwar:

Error run-time 1004

In windows XP funktioniert es gut.

Was kann oder muss ich ändern?

Besten Dank

Steve

  

Betrifft: AW: Fehler 1004 wegen FileFormat von: Josef Ehrensberger
Geschrieben am: 11.02.2012 21:29:35


Hallo Steve,

das hat nichts mit Win7 sondern mit Office2010 zu tun, Seit XL2007 musst bei SaveAs das DateiFormat zwingend angegeben werden.




« Gruß Sepp »



  

Betrifft: AW: Fehler 1004 wegen FileFormat von: Steve
Geschrieben am: 11.02.2012 21:34:20

Hallo Sepp,

Das heisst das man den dateinamen ohne ".xlsx" angeben muss, aber dafür unter dem format?

Danke

Steve


  

Betrifft: AW: Fehler 1004 wegen FileFormat von: Josef Ehrensberger
Geschrieben am: 11.02.2012 21:52:46


Hallo Steve,

nein, die Dateierweiterung muss schon angegeben werden!

Sub nn()
  Dim strFilename As String
  
  strFilename = "E:\Test.xls"
  ActiveWindow.SaveAs Filename:=strFilename, FileFormat:=-4143
  
  'oder
  strFilename = "E:\Test.xlsx"
  ActiveWindow.SaveAs Filename:=strFilename, FileFormat:=51
  
  'oder
  strFilename = "E:\Test.xlsm"
  ActiveWindow.SaveAs Filename:=strFilename, FileFormat:=52
End Sub



'oder automatisch
Sub nnn()
  Dim strFilename As String, strExt As String, lngFF As Long
  
  strFilename = "E:\Test"
  
  getFileExtAndFormat ActiveWorkbook, strExt, lngFF
  
  ActiveWorkbook.SaveAs Filename:=strFilename & strExt, FileFormat:=lngFF
  
End Sub



Function getFileExtAndFormat(ByRef WB As Workbook, ByRef strExt As String, ByRef lngFormat As Long)
  With WB
    If Val(Application.Version) < 12 Then
      strExt = ".xls": lngFormat = -4143
    Else
      Select Case WB.FileFormat
        Case 51: strExt = ".xlsx": lngFormat = 51
        Case 52:
          If .HasVBProject Then
            strExt = ".xlsm": lngFormat = 52
          Else
            strExt = ".xlsx": lngFormat = 51
          End If
        Case 56: strExt = ".xls": lngFormat = 56
        Case Else: strExt = ".xlsb": lngFormat = 50
      End Select
    End If
  End With
End Function






« Gruß Sepp »



  

Betrifft: AW: Fehler 1004 wegen FileFormat von: Steve
Geschrieben am: 12.02.2012 15:38:21

Besten dank Sepp, es läuft!


Beiträge aus den Excel-Beispielen zum Thema "Fehler 1004"