Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema OptionButton
BildScreenshot zu OptionButton OptionButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ScrollBar
BildScreenshot zu ScrollBar ScrollBar-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Button speichern unter Problem

Betrifft: Button speichern unter Problem von: Thomas Fischer
Geschrieben am: 02.09.2014 19:24:59

Hallo

Ich nutze den folgenden Code, um via Button "Speichern unter" eine grobe Richtung des
Speicherortes vorzugeben, in diesem Fall, Laufwerk V:
Nun will ich die Datei einem Ordner zuweisen.

ZB.
Ordner1
Ordner2
Ordner3
Ordner4

Nun soll die Datei in Ordner 4 gespeichert werden.
Mit meinem Code speichert er diese trotz Auswahl des 4. Ordners, in Ordner 3.

Hier der Code:

  

Betrifft: AW: Button speichern unter Problem von: Thomas Fischer
Geschrieben am: 02.09.2014 19:25:41

Public Sub Schaltfläche3_Klicken()
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .ButtonName = "Speichern unter"
        .InitialFileName = "V:\"
        .Title = "Ordner auswählen"
        .Show
        If .SelectedItems.Count = 1 Then _
         ActiveWorkbook.SaveAs Range("B2").Value & ".xls"
 
End With
End Sub



  

Betrifft: AW: Button speichern unter Problem von: fcs
Geschrieben am: 03.09.2014 01:16:58

Hallo Thomas,

.Show liefert für den Datei-/Ordner-Auswahldialog bei OK/Auswählen den Wert -1
Dies muss man prüfen, um dann die SelectedItems-Liste abzuarbeiten bzw. den 1. Wert zu übernehmen.

Da du die Datei im älteren Excelformat (2003 und älter) speichern willst, muß du den FileFormat-Parameter angeben. Wenn mit den neueren Excel-Versione stimmt sonst die Dateinamenserweiterung ggf. nicht mit dem gespeicherten Format überien.

Gruß
Franz

Public Sub Schaltfläche3_Klicken()
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .ButtonName = "Speichern unter"
        .InitialFileName = "V:\"
        .Title = "Ordner auswählen"
        If .Show = -1 Then 'OK/Auswählen wurde gewählt
            ActiveWorkbook.SaveAs .SelectedItems(1) & "\" & Range("B2").Value & ".xls", _
                    FileFormat:=-4143 '-4143 = xlWorkbookNormal
        End If
    End With
End Sub



  

Betrifft: AW: Button speichern unter Problem von: Thomas Fischer
Geschrieben am: 03.09.2014 08:42:11

Danke für die Antwort.
Ich hatte den Code im Universum des www gefunden und eingebaut.
Arbeiten tue ich allerdings mit Excel 2013.
Kann ich den Code verwenden, oder sieht der für die 2013 anders aus?

Gruß


  

Betrifft: AW: Button speichern unter Problem von: fcs
Geschrieben am: 03.09.2014 09:40:17

Hallo Thomas,

Das Makro funktioniert in allen Excelversionen, die das FileDialog-Objekt unterstützen (ich denke ab Excel 2000).

Seit Excel 2007 ist ein völlig neues Dateiformat eingeführt worden.
Deshalb ist es ggf. erforderlich das Dateiformat vorzugeben unter dem die datei gespeichert werden soll.
Die Daeteinamens-Erweiterung beim vorgegebenen Namen ist nicht unbedingt erforderlich, wenn das Dateiformat vorgeben wird. Excel fügt diese automatisch an.

Falls flexibilität für ältere und neuere Excelversionen erforderlich ist, dann sollte man das Makro wie folgt aufbauen. Für neuere Excel-Versionen sollte dann das Format entsprechend vorgegeben werden.

Gruß
Franz

Public Sub Schaltfläche3_Klicken()
    Dim lngFileFormat As XlFileFormat
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .ButtonName = "Speichern unter"
        .InitialFileName = "V:\"
        .Title = "Ordner auswählen"
        If .Show = -1 Then 'OK/Auswählen wurde gewählt
          If Val(Left(Application.Version, 2)) > 11 Then
            'Excel 2007 und neuer
'            lngFileFormat = -4143 'xlWorkbookNormal - älteres Dateiformat 2003 und älter
            lngFileFormat = 56 'xlExcel8 = Excel 2003 und älter
'            lngFileFormat = 51 'xlOpenXMLWorkbook - 2007 und neuer
'            lngFileFormat = 52 'xlOpenXMLWorkbookMacroEnabled '2007 und neuer mit Makros
'            lngFileFormat = ActiveWorkbook.FileFormat 'Format wie aktive Datei
          Else
            'Excel 2003 und älter
            lngFileFormat = -4143 'xlWorkbookNormal - älteres Dateiformat 2003 und älter
          End If
          ActiveWorkbook.SaveAs .SelectedItems(1) & "\" & Range("B2").Value, _
                    FileFormat:=lngFileFormat
        End If
    End With
End Sub



  

Betrifft: AW: Button speichern unter Problem von: Thomas
Geschrieben am: 03.09.2014 10:56:12

Werde ich heute Nachmittag gleich mal ausprobieren.
Vielen Dank für die schnelle Hilfe.

Gruß
Thomas


  

Betrifft: AW: Button speichern unter Problem von: Thomas Fischer
Geschrieben am: 03.09.2014 14:30:01

Hallo

Der letzte Code funzt. Jedoch stört mich die Kompatibilitätsüberwachung.
Kann man diese deaktivieren?

Gruß


  

Betrifft: AW: Button speichern unter Problem von: fcs
Geschrieben am: 03.09.2014 15:11:10

Hallo Thomas,


probier es mal so:

            Application.DisplayAlerts=False
            ActiveWorkbook.SaveAs .SelectedItems(1) & "\" & Range("B2").Value, _
                      FileFormat:=lngFileFormat
            Application.DisplayAlerts=True

Ansonsten muss man die Kompatibilitätsprüfung deaktivieren, wenn man die Datei mit Speichern unter unter dem gleichen Namen speichert.

Gruß
Franz


  

Betrifft: AW: Button speichern unter Problem von: Thomas Fischer
Geschrieben am: 03.09.2014 16:49:36

Das funzt.
Prima Danke.


 

Beiträge aus den Excel-Beispielen zum Thema "Button speichern unter Problem"