Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

VBA Dateinamen zusammenstellen

Betrifft: VBA Dateinamen zusammenstellen von: WalterK
Geschrieben am: 28.10.2014 16:08:55

Schönen Nachmittag,

der nachfolgende Code soll den Dateinamen aus bestimmten Zellen zusammenstellen. Seit der Umstellung von Excel 2003 auf Excel 2010 funktioniert der Code nicht mehr. An was liegt das?

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Dateiname
    Dateiname = [Eingabeblatt!AI105] & [Eingabeblatt!AI106] & [Eingabeblatt!AI107] & [ _
Eingabeblatt!AI108] & Format([Eingabeblatt!AI109], "YYYY") & [Eingabeblatt!AI110] & [Eingabeblatt!AJ110] & ".xls"

    If UCase(Dateiname) <> UCase(ActiveWorkbook.Name) Then
        Application.EnableEvents = False
        Cancel = True
        Application.Dialogs(xlDialogSaveAs).Show Dateiname
    End If
    Application.EnableEvents = True
End Sub
Besten Dank und Servus, Walter

  

Betrifft: AW: VBA Dateinamen zusammenstellen von: selli
Geschrieben am: 28.10.2014 16:13:42

hallo walter,

dann nutze doch einfach mal dein level (vba mit recorder), zeichne die prozedur des "speichern unter" auf und vergleiche die codes.

das erste was mir ins auge sticht ist die dateiendung xls, heisst doch jetzt xlsx.

learning by doing.

gruß
selli


  

Betrifft: AW: VBA Dateinamen zusammenstellen von: WalterK
Geschrieben am: 28.10.2014 16:45:46

Hallo selli,

die Aufzeichnung mit dem VBA-Recorder brachte mich nicht weiter.

Die Dateiendung .xls anstatt .xlsx scheint es auch nicht zu sein.

Danke und Servus, Walter


  

Betrifft: AW: VBA Dateinamen zusammenstellen von: Luschi
Geschrieben am: 28.10.2014 18:53:10

Hallo Walter,

leider schreibst Du nicht, was nicht funktioniert.
Setze doch mal einen Haltepunkt im Code. Mehr dazu siehe hier:
http://www.computerwissen.de/office/excel/artikel/haltepunkte-in-vba-makros-setzen.html
und prüfe mal, was der Inhalt der Variablen 'Dateiname' ist.

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: VBA Dateinamen zusammenstellen von: WalterK
Geschrieben am: 28.10.2014 19:54:52

Hallo Luschi,

beim Haltepunkt "MsgBox Dateiname" wird der Dateiname laut den angegebenen Zellen angezeigt.

Danach erscheint der "Speichern untern" - Dialog und dort wird als Dateiname eben nichts angezeigt.

Laut Code sollte dort falls der Dateiname mit dem Mappenname differiert der Mappenname stehen, ansonsten sollte der "Dateiname" angeführt sein.

Derzeit wird dort aber nichts angezeigt.
P.S.: Unter Excel 2003 hat dieser Code immer funktioniert.

Danke und Servus, Walter


  

Betrifft: AW: VBA Dateinamen zusammenstellen von: Luschi
Geschrieben am: 29.10.2014 08:15:40

Hallo Walter,

ab Excel 2007 ist noch ein weiterer Parameter erforderlich, damit der Dateiname angezeigt wird. Hier 3 Beispiele, die bei mit funktionieren:

Dateiname = "abc.xls"
Application.Dialogs(xlDialogSaveAs).Show Dateiname, 56 'oder 1

Dateiname = "abc.xlsx"
Application.Dialogs(xlDialogSaveAs).Show Dateiname, 51

Dateiname = "abc.xlsm"
Application.Dialogs(xlDialogSaveAs).Show Dateiname, 52

Eine Erklärung für die Zahlen findest Du hier:
http://msdn.microsoft.com/de-de/library/office/ff198017%28v=office.15%29.aspx

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: VBA Dateinamen, funktioniert noch nicht von: WalterK
Geschrieben am: 29.10.2014 18:06:11

Hallo Luschi,

mein Code sieht jetzt so aus, es tut sich aber nichts:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Dateiname
    Dateiname = [Eingabeblatt!AI105] & [Eingabeblatt!AI106] & [Eingabeblatt!AI107] & [ _
Eingabeblatt!AI108] & Format([Eingabeblatt!AI109], "YYYY") & [Eingabeblatt!AI110] & [Eingabeblatt!AJ110] & ".xlsm"

    If UCase(Dateiname) <> UCase(ActiveWorkbook.Name) Then
        Application.EnableEvents = False
        Cancel = True
        Application.Dialogs(xlDialogSaveAs).Show Dateiname, 52
    End If
    Application.EnableEvents = True
End Sub
Vielleicht gibt es noch eine Idee wie man es zum Laufen bringen könnte!

Besten Dank jedeenfalls und Servus, Walter


  

Betrifft: AW: VBA Dateinamen, funktioniert noch nicht von: Luschi
Geschrieben am: 30.10.2014 10:55:18

Hallo Walter,

poste doch mal den Inhalt der Variable 'Dateiname'. Ich habe bei meinen Tests festgestellt,
das die Dialogboxen sich ganz schön jungfernhaft benehmen, wenn man denen Parameter übergibt, die sie nicht mögen.
Leider bringen sie auch keine Informationen, warum das so ist, sondern bleiben da einfach trotzköpfig und stur.

Gruß von Luschi
aus klein-Paris



  

Betrifft: AW: VBA Dateinamen, funktioniert noch nicht von: WalterK
Geschrieben am: 30.10.2014 19:35:10

Hallo Luschi,

Ich habe es jetzt nochmals mit dem zusätzlichen Parameter getestet und es scheint nun doch zu funktionieren.

Besten Dank jedenfalls für Deine Unterstützung und Servus, Walter


 

Beiträge aus den Excel-Beispielen zum Thema "VBA Dateinamen zusammenstellen"