Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Speichern unter mit FileDialog

Speichern unter mit FileDialog
04.05.2009 09:48:37
Rainer
Hallo,
möchte eine Tabelle im xls-Format speichern, damit mir die Makros mit übernommen werden.
Klappt alles soweit.
Allerdings hätte ich im Makro gerne auch die Vorauswahl für "Excel 97-2003-Arbeitsmappe (*.xls)".
Habe nun schon einiges getestet.
Nur mein Code (als Funktion) "verschluckt" mir immer die "xls"-Angabe und bringt mir "xlsx".

sName = Range("Dateiname").Text
Set oFileDialog = Application.FileDialog(msoFileDialogSaveAs)
With oFileDialog
.Title = "Analyse " & Cells(3, 13) & " speichern"
.ButtonName = "Analyse speichern"
.InitialFileName = sName & ".xls" ' oder Cells(1, 2)
.Execute
.Show
For Each vrtSelectedItem In .SelectedItems
DatenSpeichern = vrtSelectedItem
Next
End With


Gruß Rainer

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern unter mit FileDialog
04.05.2009 10:09:17
Tino
Hallo,
mach noch den .FilterIndex = 4 dazu.
Gruß Tino
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Speichern unter mit FileDialog in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Tabelle im Excel-Format zu speichern und dabei die Makros zu behalten, kannst du den FileDialog in VBA verwenden. Folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.
  2. Füge ein Modul hinzu: Rechtsklicke im Projekt-Explorer auf "VBAProject (deine Datei)" und wähle Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:
Sub SpeichernUnterMitFileDialog()
    Dim sName As String
    Dim oFileDialog As FileDialog
    Dim DatenSpeichern As String

    sName = Range("Dateiname").Text
    Set oFileDialog = Application.FileDialog(msoFileDialogSaveAs)

    With oFileDialog
        .Title = "Analyse " & Cells(3, 13) & " speichern"
        .ButtonName = "Analyse speichern"
        .InitialFileName = sName & ".xls" ' oder Cells(1, 2)
        .FilterIndex = 4 ' Setzt den Filter auf "Excel 97-2003-Arbeitsmappe (*.xls)"

        If .Show = -1 Then ' Überprüfen, ob der Benutzer auf "Speichern" geklickt hat
            For Each vrtSelectedItem In .SelectedItems
                DatenSpeichern = vrtSelectedItem
            Next
        End If
    End With
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus: Drücke ALT + F8, wähle SpeichernUnterMitFileDialog aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Problem: Die Dateiendung ändert sich zu .xlsx.

    • Lösung: Stelle sicher, dass du .FilterIndex = 4 im Code hinzugefügt hast. Dies sorgt dafür, dass die richtige Dateiendung für "Excel 97-2003-Arbeitsmappe (*.xls)" gewählt wird.
  • Problem: Das Dialogfeld erscheint nicht.

    • Lösung: Überprüfe, ob du das richtige msoFileDialogSaveAs verwendet hast. Manchmal kann es auch helfen, Excel neu zu starten.

Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du auch manuell speichern:

  1. Klicke auf Datei.
  2. Wähle Speichern unter.
  3. Wähle den Dateityp "Excel 97-2003-Arbeitsmappe (*.xls)" aus dem Dropdown-Menü.

Diese Methode ist jedoch weniger flexibel als die Verwendung von VBA.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das dir zeigt, wie du das FileDialog in VBA effektiv nutzen kannst:

Sub SpeichernMitFileDialog()
    Dim oFileDialog As FileDialog
    Set oFileDialog = Application.FileDialog(msoFileDialogSaveAs)

    With oFileDialog
        .Title = "Datei speichern"
        .InitialFileName = "MeinBericht.xls"
        .FilterIndex = 4 ' Excel 97-2003-Arbeitsmappe

        If .Show = -1 Then
            ' Speichere die Datei hier
        End If
    End With
End Sub

Tipps für Profis

  • Nutze die .InitialFileName-Eigenschaft, um den Standardnamen der Datei festzulegen.
  • Experimentiere mit verschiedenen FilterIndex, um verschiedene Dateitypen anzubieten.
  • Stelle sicher, dass dein Code gut dokumentiert ist, damit andere oder du selbst ihn später leichter verstehen kannst.

FAQ: Häufige Fragen

1. Wie kann ich den Dateityp im FileDialog ändern?
Du kannst den FilterIndex im Code anpassen, um verschiedene Dateitypen anzuzeigen.

2. Kann ich den FileDialog auch für das Öffnen von Dateien verwenden?
Ja, du kannst msoFileDialogOpen anstelle von msoFileDialogSaveAs verwenden, um Dateien zu öffnen. Achte darauf, dass du den Code entsprechend anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige