Microsoft Excel

Herbers Excel/VBA-Archiv

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

Prüfung Datei offen mit variablem Dateinamen | Herbers Excel-Forum


Betrifft: Prüfung Datei offen mit variablem Dateinamen von: Jürgen
Geschrieben am: 12.01.2012 12:18:24

Hallo Excel-Forum,

ich hoffe ihr könnt mir weiterhelfen. Habe bei meiner Rescherche noch keine Lösung gefunden.

Das Thema als solches ist altbekannt. Excel soll per Makro prüfen, ob eine bestimmte Datei gerade geöffnet ist. So weit so gut. Ich habe aber jetzt das Problem, dass der Dateiname am Ende variiert.
Der Dateityp ist immer der gleiche.
Z.B. heißt die Datei einmal data(1).csv beim nächsten mal data(12).csv.

Ich benötige irgendeine Möglichkeit eine Art "Wildcard" zu benützen ähnlich wie data*.csv.

Folgenden Lösungsansatz habe ich bic jetzt:

If Not IsWorkbookOpen("data.csv") Then
MsgBox "Die Datei ist nicht geöffnet!"
Exit Sub
Else
End If

Welchen Begriff muss ich anstatt "data.csv" benützen.

Bin über jede Hilfe dankbar.

Vielen Dank im Voraus

  

Betrifft: AW: Prüfung Datei offen mit variablem Dateinamen von: MatthiasG
Geschrieben am: 12.01.2012 12:29:26

Hallo Jürgen,

die Funktion "IsWorkbookOpen" ist ja keine eigene Excel-Funktion. Wie wurde die denn realisiert?

Soll denn geprüft werden, ob die Datei in der aktuellen Excel-Instanz geöffnet ist oder ob sie allgemein (evtl. über eine Netzfreigabe) geöffnet und für die Bearbeitung gesperrt ist?

Kommt es vor, dass mehrere Dateien nach deinem Muster (also z.B. data(1).csv und data(12).csv) geöffnet sind? Wie soll die Funktion dann arbeiten?

Gruß Matthias


  

Betrifft: AW: Prüfung Datei offen mit variablem Dateinamen von: Jürgen
Geschrieben am: 12.01.2012 12:47:58

Hallo Matthias,

entschuldige, dass ich mich nicht konkret genug ausgedrückt habe.

Funktion "IsWorkbookOpen" hängt an folgender Funktion:

Function IsWorkbookOpen(strWB As String) As Boolean
   On Error Resume Next
   IsWorkbookOpen = Not Workbooks(strWB) Is Nothing
End Function
Es ist immer nur eine Datei mit dem namen data***.csv geöffnet.

Kurz zum Hintergrund:
Die Datei ist im Anhang einer Mail. Die Daten hieraus sollen automatisch in die eigentliche Exceldatei
kopiert werden und dann weiterverarbeitet. Die Abfrage, ob die Datei geöffnet ist, soll unterstützend für die Kollegen sein. Sollten sie vergessen haben den Mailanhang vor Verarbeitung zu öffnen erscheint dann der Hinweis.
Eine Möglichkeit aus Excel heraus eine Mail anzuwählen und deren Anhang zu öffnen scheint es nicht zu geben - bzw. habe ich nirgends gefunden.

Kannst Du mir hierbei irgendwie helfen?

Vielen Dank
Jürgen


  

Betrifft: AW: Prüfung Datei offen mit variablem Dateinamen von: MatthiasG
Geschrieben am: 12.01.2012 13:04:27

Hallo Jürgen,

nimm mal folgende Funktion:

Function IsWorkbookOpen(fn As String) As String
Dim wb As Workbook
For Each wb In Application.Workbooks
    If UCase(wb.Name) Like UCase(fn) Then
        IsWorkbookOpen = wb.Name
        Exit Function
Next wb
IsWorkbookOpen = ""
End Function

Dann kannst du diesen Code zur Abfrage benutzen:
Dim fn as string
fn = IsWorkbookOpen("data*.csv")
If fn="" Then
   MsgBox "Die Datei ist nicht geöffnet!"
   Exit Sub
Else
   MsgBox "Die Datei " & fn & " ist geöffnet."
End If

Wenn allerdings mehrere Mappen mit dem angegebenen Muster ("data*.csv") geöffnet sind, wird nur der Name der ersten gefundenen Mappe zurückgegeben. Sollte das nicht ausreichen, muss der Code nochmals umgeschrieben werden.

Gruß Matthias


  

Betrifft: AW: Prüfung Datei offen mit variablem Dateinamen von: MatthiasG
Geschrieben am: 12.01.2012 13:07:12

Hallo Jürgen,

kleine Korrektur:

zwischen "Exit Function" und "Next wb" fehlt noch "End If":

unction IsWorkbookOpen(fn As String) As String
Dim wb As Workbook
For Each wb In Application.Workbooks
    If UCase(wb.Name) Like UCase(fn) Then
        IsWorkbookOpen = wb.Name
        Exit Function
    End If
Next wb
IsWorkbookOpen = ""
End Function
Gruß Matthias


  

Betrifft: AW: Prüfung Datei offen mit variablem Dateinamen von: Jürgen
Geschrieben am: 12.01.2012 13:27:48

Hallo Matthias,

vielen Dank für Deine Hilfe.
Dein Vorschlag funktioniert prächtig.

Und wieder etwas dazugelernt ;-))

Grüße
Jürgen


  

Betrifft: AW: Prüfung Datei offen mit variablem Dateinamen von: MatthiasG
Geschrieben am: 12.01.2012 13:30:01

Hallo Jürgen,

freut mich, dass ich helfen konnte :-)

Gruß Matthias


Beiträge aus den Excel-Beispielen zum Thema "Prüfung Datei offen mit variablem Dateinamen"