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

Application.Dialogs(xlDialogSaveAs) Namen vorgeben

Forumthread: Application.Dialogs(xlDialogSaveAs) Namen vorgeben

Application.Dialogs(xlDialogSaveAs) Namen vorgeben
30.11.2015 15:30:29
Andreas
Hallo zusammen,
ich habe vor einiger Zeit eine Excel-Datei erstellt, die einige Text-Dateien importiert, bestimmte Daten berechnet und daraus ein Diagramm erstellt.
Am Schluss soll die Datei unter einem Namen aus einer Zelle abgespeichert werden.
Unter Excel 2003 funktionierte das auch einwandfrei.
Nach und nach wurde alles auf 2010 umgestellt und jetzt wird mir der Name im Speichern-Dialog nicht mehr angezeigt.
Ich weiß nicht wo der Fehler liegt. Hier mal der Code:
Sub Speichern_unter()
Ort = Sheets(2).Range("H1")
If Len(Ort) = 0 Then
MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
Else
Application.Dialogs(xlDialogSaveAs).Show (Ort & ".xls")
End If
End Sub

Der Name steht auch weiterhin in der angegebenen Zelle. Trotzdem wird er nicht angezeigt.
Über eine Antwort würde ich mich sehr freuen.
Gruß
Andreas

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.Dialogs(xlDialogSaveAs) Namen vorgeben
30.11.2015 15:49:00
Rudi
Hallo,
anscheinend wird nur xlsx akzeptiert.
Gruß
Rudi

AW: Application.Dialogs(xlDialogSaveAs) Namen vorgeben
30.11.2015 15:49:55
Rudi
Hallo,
oder lass die Endung weg.
Application.Dialogs(xlDialogSaveAs).Show Ort
Gruß
Rudi

AW: Application.Dialogs(xlDialogSaveAs) Namen vorgeben
30.11.2015 20:41:03
Luschi
Hallo Andreas,
meine Application.Dialogs(xlDialogSaveAs).Show haben folgendes ergeben:
Application.Dialogs(xlDialogSaveAs).Show ort & x, y
setze für x bzw. y Folgendes ein:

x           y
"*.xls"     1 oder 18
"*.xlt"     17
"*.xlsx"    51
"*.xlsm"    52
"*.xltm"    53
"*.xltx"    54
"*.xlam"    55
"*.pdf"     56
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Application.Dialogs(xlDialogSaveAs) Namen vorgeben
01.12.2015 07:13:54
Andreas
Hallo Luschi,
das war leider nicht des Rätsels Lösung.
Es wird mir weiterhin kein Name vorgegeben, obwohl er ja in der Zelle vorhanden ist.
Bei Excel 2003 ist alles OK, in der 2010 Version funktioniert es nicht mehr.
Gruß
Andreas

AW: Application.Dialogs(xlDialogSaveAs) Namen vorgeben
01.12.2015 08:08:25
Luschi
Hallo Andreas,
ich habe es mit Excel 2010 noch mal getestet. Wenn in der Variablen 'ort' der Lw + Pfad + Dateiname steht, dann genügt auch das:
ort = "d:\daten\test\meineDatei.xls"
Application.Dialogs(xlDialogSaveAs).Show ort, 1
oder
Application.Dialogs(xlDialogSaveAs).Show ort, 18
Userbild
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Application.Dialogs(xlDialogSaveAs) Namen vorgeben
01.12.2015 09:04:20
Andreas
Hallo Luschi,
danke für Deine Hilfe, aber leider klappt es nicht.
Excel macht keine Anstalten den vorgegebenen Namen aus der Zelle anzunehmen.
Die Dateiendung muss nicht zwingend .xls sein. Bloß als die Vorlage erstellt wurde, war die Version 2010 sehr selten in der Firma.
In der 2003er Version wurde als Pfad der Ordner angezeigt, aus dem ursprünglich die Text-Dateien importiert wurden. Das war auch super.
Und jetzt zeigt er den Pfad der Vorlage an und den Namen aus der vorgegebenen Zelle ignoriert er.
Ich bin leider kein VBA-Profi, deshalb suche ich hier nach Hilfe.
Gruß
Andreas

Anzeige
AW: Application.Dialogs(xlDialogSaveAs) Namen vorgeben
01.12.2015 12:43:06
Luschi
Hallo Andreas,,
man kann es auch so machen:
'erzeugt die Datei 'aaa.xls'
ort = "c:\daten\test\aaa"
Application.Dialogs(xlDialogSaveAs).Show ort, 1
'erzeugt die Datei 'aaa.xls'
ort = "c:\daten\test\aaa"
Application.Dialogs(xlDialogSaveAs).Show ort, 18
'erzeugt die Datei 'aaa.xlsx'
ort = "c:\daten\test\aaa"
Application.Dialogs(xlDialogSaveAs).Show ort, 51
'erzeugt die Datei 'aaa.xlsm'
ort = "c:\daten\test\aaa"
Application.Dialogs(xlDialogSaveAs).Show ort, 52
In allen diesen Fällen wird die Datei im Auswahlmenü angezeigt und der richtige Dateityp ist ausgewählt.
Gruß von Luschi
aus klein-Paris
PS: Dabei ist es bei mir egal. welchen Dateityp die gerade aktuelle Datei hat, die neu abgespeichert werden soll!

Anzeige
AW: Application.Dialogs(xlDialogSaveAs) Namen vorgeben
01.12.2015 13:29:52
Andreas
Hallo Luschi,
vielen Dank für Deine Hilfe.
Ich war gleichzeitig dran und habe mehrere Sachen ohne Erfolg ausprobiert.
Bis ich Deinen ersten Tip weiter obenin einer komplett leeren Datei ausprobiert habe.
Da hat alles erfolgreich funktioniert.
Und dann haben bei mir alle Lampen geleuchtet.
In der Datei waren 2 Codes mit leicht unterschiedlicher Benennung. Und ich habe natürlich am falschen rumgebastelt. In der Datei nicht sofort zu finden.
Nach Eingabe Deines Vorschlages im richtigen Code hat alles funktioniert.
Danke vielmals für Deine Mühen.
Gruß
Andreas
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Namen im Speichern-Dialog vorgeben mit Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel mit ALT + F11.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf dein Projekt im Projekt-Explorer, wähle Einfügen und dann Modul.

  3. Füge den folgenden Code ein, um den Speichern-Dialog mit einem vorgegebenen Namen zu öffnen:

    Sub Speichern_unter()
       Dim Ort As String
       Ort = Sheets(2).Range("H1").Value
       If Len(Ort) = 0 Then
           MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
       Else
           Application.Dialogs(xlDialogSaveAs).Show Ort & ".xls"
       End If
    End Sub
  4. Ändere die Dateiendung entsprechend deiner Anforderungen. Du kannst auch die Endung weglassen, um die Endung im Dialog auszuwählen.

  5. Starte das Makro: Gehe zurück zu Excel und drücke ALT + F8, wähle Speichern_unter und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: Der Name wird nicht angezeigt.

    • Stelle sicher, dass der Wert in der Zelle H1 nicht leer ist. Verwende MsgBox, um den Inhalt der Zelle zu überprüfen.
  • Lösung: Endung nicht akzeptiert.

    • Es kann sein, dass nur bestimmte Dateiendungen wie .xlsx oder .xlsm akzeptiert werden. Überprüfe den Dateityp und verwende Application.Dialogs(xlDialogSaveAs).Show Ort, 1, um den Typ anzugeben.

Alternative Methoden

  • Anstelle von Application.Dialogs(xlDialogSaveAs).Show kannst du die SaveCopyAs-Methode verwenden, um eine Kopie der Datei unter einem bestimmten Namen zu speichern, ohne den Dialog zu öffnen:

    Sub Speichern()
       Dim Ort As String
       Ort = Sheets(2).Range("H1").Value
       If Len(Ort) > 0 Then
           ThisWorkbook.SaveCopyAs Ort & ".xls"
       Else
           MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
       End If
    End Sub

Praktische Beispiele

  • Beispiel 1: Speichern unter .xlsx

    Sub Speichern_unter_xlsx()
       Dim Ort As String
       Ort = "C:\Pfad\zu\deiner\Datei.xlsx"
       Application.Dialogs(xlDialogSaveAs).Show Ort, 51
    End Sub
  • Beispiel 2: Speichern unter .pdf

    Sub Speichern_unter_pdf()
       Dim Ort As String
       Ort = "C:\Pfad\zu\deiner\Datei.pdf"
       Application.Dialogs(xlDialogSaveAs).Show Ort, 56
    End Sub

Tipps für Profis

  • Verwende Variablen für Dateipfade, um die Wartbarkeit deines Codes zu verbessern. Teste, ob der Pfad existiert, bevor du versuchst, die Datei zu speichern.
  • Nutze Error-Handling in deinem Code, um unerwartete Fehler abzufangen:

    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    
    Fehlerbehandlung:
       MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Warum wird der Name im Speichern-Dialog nicht angezeigt?
Dies kann daran liegen, dass die Zelle leer ist oder die Endung nicht akzeptiert wird. Überprüfe den Inhalt der Zelle und die Dateiendung.

2. Welche Dateiendungen kann ich verwenden?
Du kannst verschiedene Dateiendungen wie .xls, .xlsx, .xlsm und viele andere verwenden. Stelle sicher, dass du die richtigen Argumente in Application.Dialogs(xlDialogSaveAs).Show angibst.

3. Wie kann ich den Pfad in der Dialogbox anpassen?
Füge den vollständigen Pfad und Dateinamen in die Variable Ort ein, bevor du den Dialog öffnest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige