Clever-Excel-Forum

Normale Version: "If Right(..." wird nicht erkannt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi,

leider kann mein Excel (2016) auch nach mehrmaligen Versuchen mit der Befehlszeile


Code:
If Right(ThisWorkbook.Name, 5) = ".xltm" Then


nichts anfangen. Gibt es eine Alternative abzufragen, ob es sich (noch) um eine Vorlagendatei handelt?

Der ganze Code:


Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' Aufgabenstellung
'    Vorlage ist geöffnet
'    Speichern-unter-Fenster öffnen mit definiertem Dateinamen
'       a) Speichern - anschließend Speichern-unter-Fenster schließen (zurück zur Datei)
'       b) Abbrechen - Speichern-unter-Fenster schließen (ohne weitere Aktion)
 
   Dim Dateiname As String
   If SaveAsUI = True Then                 ' Save as Button gedrückt
       If Right(ThisWorkbook.Name, 5) = ".xltm" Then       ' es handelt sich um eine Vorlage
           Dateiname = "Tagesdokumentation " & Worksheets("Übergabe").Range("B1").Value & " " & Worksheets("Übergabe").Range("A1").Value & ".xlsm"
           Application.EnableEvents = False
           Application.Dialogs(xlDialogSaveAs).Show Dateiname, 52
           Application.EnableEvents = True
           Cancel = True
       End If
  End If
End Sub
Hallo,

teste mal dieses Makro:


Code:
Sub test()
 MsgBox ThisWorkbook.Name
End Sub

was wird dir da angezeigt?
Hi
Du hast da "xltm" stehen
Sollte es evtl ".xlsm" heissen ?

Gruss Igel
Hallo,

@Igel

(05.02.2018, 12:27)Igelbauer schrieb: [ -> ]Hi
Du hast da "xltm" stehen
Sollte es evtl ".xlsm" heissen ?

nicht unbedingt siehe Bild
Hallo Stefan, 

hast du das Makro von mir mal getestet?
Hallo Klaus-Dieter,

ja, habe ich. Mit Excel 2010 kommt bei mir die Dateiendung mit. Wie es in Excel 2016 ausschaut, weiß ich nicht.

EDIT: Klaus-Dieter, du hast Recht. Ich habe dies nicht an einer Vorlage getestet und bei einer Vorlage kommt natürlich keine Dateiendung.
Hi, danke,

habe das Problem jetzt mit


Code:
If Me.Path = "" Then


gelöst. Prüft, ob der Pfad noch leer ist weil die Datei aus einer Vorlage stammt und noch nicht gespeichert wurde.