Microsoft Excel

Herbers Excel/VBA-Archiv

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

Fehler im Makro bei Dateiname | Herbers Excel-Forum


Betrifft: Fehler im Makro bei Dateiname von: Dieter
Geschrieben am: 25.11.2009 14:06:12

Hallo Experten,

ich hab mir ein Makro gebaut, dass vor zwei Wochen noch funktioniert hat. Jetzt funktioniert es nicht mehr und ich weiß nicht warum.
Es hängt sich immer an der Stelle auf:

If Not .InitialFileName Like "XMLVJT2_????_Q?.xls" Then
MsgBox "Möglicherweise haben Sie eine falsche Datei ausgewählt. Bitte versuchen Sie es erneut!"
GoTo VorletztesQuartal
End If

Das heißt auch wenn die ausgewählte Datei in der Form ist kommt die Fehlermeldung.

Kann mir einer helfen???

PS: Ohne das funktioniert es einwandfrei nur ohne die Fehlermeldung (MsgBox), die ich gerne drinhaben möchte.

Private Sub CommandButton1_Click()

    Dim WStmp As Worksheet
    Dim ZWS As Worksheet
    Dim QWSName As String
    Dim ZWSFirstRange As String
    Dim ZWSSecondRange As String
    Dim FileStr As Variant
    Dim PathStr As Variant
    Dim WB As Workbook
    
    Set ZWS = Worksheets("Quartaltabellen")
    PathStr = "D:\D14\Panne\HerrMeyer\Orignal"
    QWSName = "Tabelle1"
    ZWSFirstRange = "A1"
    ZWSSecondRange = "A230"
    
VorletztesQuartal:
    'Vorletztes Quartal
    With Application.FileDialog(msoFileDialogOpen)
        .Title = "Vorletztes Ouartal einfügen"
        .InitialFileName = "XMLVJT2_????_Q?.xls"
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "ExcelDateien", "*.xls"
        .Show
        If .SelectedItems.Count <> 1 Then
            MsgBox "Vorletztes Quartal nicht aktualisiert"
            GoTo LetztesQuartal
        End If
        FileStr = .SelectedItems(1)
        If Not .InitialFileName Like "XMLVJT2_????_Q?.xls" Then
            MsgBox "Möglicherweise haben Sie eine falsche Datei ausgewählt. Bitte versuchen Sie  _
es erneut!"
            GoTo VorletztesQuartal
        End If
    End With
    Set WStmp = Worksheets.Add
    Set WB = Workbooks.Open(FileStr)
    WB.Worksheets(1).UsedRange.Copy Destination:=WStmp.Range(ZWSFirstRange)
    WB.Close
    Set WB = Nothing
    
LetztesQuartal:
    'Letztes Quartal
    With Application.FileDialog(msoFileDialogOpen)
        .Title = "Letztes Ouartal einfügen"
        .InitialFileName = "XMLVJT2_????_Q?.xls"
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "ExcelDateien", "*.xls"
        .Show
        If .SelectedItems.Count <> 1 Then
            MsgBox "Letztes Quartal nicht aktualisiert"
            GoTo Ende
        End If
        FileStr = .SelectedItems(1)
    End With
    Set WB = Workbooks.Open(FileStr)
    WB.Worksheets(1).UsedRange.Copy Destination:=WStmp.Range(ZWSSecondRange)
    WB.Close
    Set WB = Nothing
    ZWS.UsedRange.Clear
    WStmp.UsedRange.Copy Destination:=ZWS.Range(ZWSFirstRange)
    
Ende:
    On Error Resume Next
    Application.DisplayAlerts = False
    WStmp.Delete
    Set WStmp = Nothing
    Application.DisplayAlerts = False
    WB.Close
    Set WB = Nothing


End Sub

  

Betrifft: AW: Fehler im Makro bei Dateiname von: Rudi Maintaire
Geschrieben am: 25.11.2009 14:28:38

Hallo,

auch wenn die ausgewählte Datei in der Form ist

was hat denn .Initialfilename mit der ausgewählten Datei zu tun?

If not Filestr like ....

Gruß
Rudi


  

Betrifft: AW: Fehler im Makro bei Dateiname von: Dieter
Geschrieben am: 25.11.2009 14:32:18

Tut mir leid die MsgBox kommt trotsdem noch


  

Betrifft: AW: Fehler im Makro bei Dateiname von: Luschi
Geschrieben am: 25.11.2009 14:32:12

Hallo Dieter,

in dieser Form kann das Makro auch vor 2 Wochen nicht funktioniert haben, da nach der Dateiauswahl
der Inhalt von '.InitialFileName' auch den Laufwerksbuchstaben und die Pfadangabe mitliefert.
In meinem Fall liegt die Datei XMLVJT2_1234_Q9.xls hier: Y:\1\XMLVJT2_1234_Q9.xls und .InitialFileName
liefert folgenden Wert: Y:\1\XMLVJT2_????_Q?.xls
Deshalb muß die If-Abfrage mindestens so lauten:
If Not .InitialFileName Like "*\XMLVJT2_????_Q?.xls" Then

Willst Du auch noch erzwingen, das die ausgewählte Datei auf dem Laufwerk 'y' liegt, dann so:
If Not .InitialFileName Like "y:\*\XMLVJT2_????_Q?.xls" Then

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Fehler im Makro bei Dateiname von: Dieter
Geschrieben am: 25.11.2009 14:39:35

Ich hab mich schon gefreut, dass die MsgBox nicht mehr auftaucht. Dann habe ich die Probe auf´s Exempel gemacht und ganz bewusst eine falsche Datei ausgewählt. Leider wurde die Datei dann eingefügt, obwohl das ja nicht passieren sollte und an der Stelle dann die Fehlermeldung greifen sollte.


  

Betrifft: AW: Fehler im Makro bei Dateiname von: Luschi
Geschrieben am: 25.11.2009 14:51:19

Hallo Dieter,

mit .InitialFileName sorgt man nur dafür, daß im Datei-Dialog nur die Dateien zur Auswahl stehen, die dem vorgegebenen Muster entsprechen. Wenn die dann vom User ausgewählte Datei noch anderen Kriterien entsprechen muß (z.B. aktueller Monat), dann muß das Initialraster verfeinert werden oder die Variable 'FileStr' weiter ausgewertet werden.
Es kann ja sein, das die 4 Fragezeichen im Muster das Jahr und den Monat vorgeben (0409) für Aprill 2009.

Gruß von Luschi
aus klein-Paris


  

Betrifft: und überhaupt ... von: Rudi Maintaire
Geschrieben am: 25.11.2009 14:34:22

ist LIKE Case-Sensitiv, unterscheidet also Groß- und KLeinschreibung.

Gruß
Rudi


Beiträge aus den Excel-Beispielen zum Thema "Fehler im Makro bei Dateiname"