Microsoft Excel

Herbers Excel/VBA-Archiv

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

Zähler im Dateinamen beim merhfachen Öffnen

Betrifft: Zähler im Dateinamen beim merhfachen Öffnen von: Robert Rühl
Geschrieben am: 21.10.2014 18:00:30

Hallo zusammen,
ich habe in Excel eine geschlossene Datenbank mit diversen Eingabeformularen und Reports erstellt. Es ist angedacht, dass die Kollegen ein Eingabeformular befüllen, mittels Makro erfolgt eine Qualitätssicherung und Übermittlung eines Datensatzes per Email. Diese Daten können dann nach erfolgter Sichtung mittels eines weiteren Makros in die DB geschoben werden.

Ein Problem ist jetzt bei dem Eingabeformular entstanden: als ein Kollege die Datei mehrmals geöffnet hatte, funktionierten die Makros nicht. Excel hat den Dateinamen hochgezählt (z.B.: Dateiname(2).xls), während die Befehlszeile im Makro "Workbooks("Dateiname.xls") usw. erwartet.

Wie kann ich das Problem umgehen bzw. verhindern, dass die Datei mehrfach geöffnet wird?

Vielen Dank für Eure Hilfe.
Robert

  

Betrifft: AW: Zähler im Dateinamen beim merhfachen Öffnen von: Luschi
Geschrieben am: 21.10.2014 21:02:31

Hallo Robert,

wenn ich das in Excel 2003-2013 versuche, dann kommt soche Warnmeldung:

Das Einzige, was mir gelingt ist sowas:

Dann habe ich aber nicht die Datei 3 mal geöffnet, sondern nur 3 verschiedene Fensteransichten erstellt.

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Zähler im Dateinamen beim merhfachen Öffnen von: Robert Rühl
Geschrieben am: 22.10.2014 10:11:14

Hallo Luschi aus Heddernheim,

wenn ich meldung.xls öffne funktioniert das Makro. Wenn ich die Datei schließe und nochamls öffne, wird der Datei Name um den Zähler (2) ergänzt und das Makro läuft nicht:



Bin mittlerweile aber noch ein Stück weiter: die passiert nur, wenn man die Datei aus Outlook heraus öffnet.

Grüße
aus Bockenheim
Robert


  

Betrifft: Wiederherstellungsdatei? von: Tino
Geschrieben am: 22.10.2014 11:03:42

Hallo,
könnte es sich um eine Wiederherstellungsdatei handeln, die nach einem Absturz geöffnet wurde?

Gruß Tino


  

Betrifft: AW: Wiederherstellungsdatei? von: Robert Rühl
Geschrieben am: 22.10.2014 11:28:11

Nein, das ist keine Wiederherstellungsdatei, ich kann das an meinem Rechner sogar x-beliebig oft nachspielen. Dabei ist mir aufgefallen, dass dieses Phänomen verschwindet (aussetzt), wenn die Email schließe und wieder öffne. Sobald die Datei aus dem Email ein zweites mal geöffnet wird, entsteht das Problem erneut.
Scheint also mehr mit Outlook zusammenzuhängen. Ich überlege gerade, ob ich beim öffnen der Datei überprüfen, ob diese Hochzählung aktiviert wurde und dann eine Fehlermeldung mit der Bitte, Datei und Email zu schließen und neu zu öffnen, ausgebe. Ich weiß allerdings noch nicht, wie ich das genau anstellen soll.
Gruß & Danke
Robert


  

Betrifft: AW: Wiederherstellungsdatei? von: Sven Söllner
Geschrieben am: 22.10.2014 11:43:34

Hallo Robert,

dies liegt definitiv an Outlook, da deine Datei vor dem Öffnen temporär gespeichert wird.
Existiert bereits der Name, so ergänzt Outlook automatisch die Datei mit einem Counter.
Beim schliessen der E-Mail löscht auch Outlook diese Datei wieder, jedoch nur wenn diese
beim Schliessen nicht durch Excel geöffnet ist.

Via VBA könntest Du beim Öffnen der Exceldatei eine eindeutige Datei auf deine Platte schreiben und
beim Schliessen der Exceldatei wieder löschen. Existiert beim Öffnen der Exceldatei schon diese durch VBA geschriebene Datei, so soll eine Fehlermeldung ausgegeben werden und anschließend die Datei wieder
geschlossen werden.

Hier ein Beispiel wie dies aussehen könnte:

Public Fehler As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Fehler = False Then Kill "c:\dateicheck.tmp"
End Sub

Private Sub Workbook_Open()

Open "c:\dateicheck.tmp" For Random As #1
If LOF(1) > 1 Then
    Fehler = True
    MsgBox "Datei bereits geöffnet"
Else
    Print #1, "CHECK"
End If
Close #1
    
If Fehler = True Then Application.Quit 

End Sub

Hab den Code jetzt selber nicht getestet, sollte aber funzen...

Grüße
Sven


  

Betrifft: alternative von: Tino
Geschrieben am: 22.10.2014 14:04:59

Hallo,
du könntest alternativ nach der entsprechenden Datei suchen.
In Deinem Code arbeitest Du dann mit der Objektvariablen weiter.

Beispiel:

Sub Beispiel()
Dim objWB As Workbook

'zuerst den normalen Dateinamen suchen
For Each objWB In Workbooks
    If objWB.Name Like "Dateiname.xls" Then
        Exit For
    End If
Next objWB
'nicht gefunden, suche nach Dateiname mit zusatz
If objWB Is Nothing Then
    For Each objWB In Workbooks
        If objWB.Name Like "Dateiname(#).xls" Then
            Exit For
        End If
    Next objWB
End If

If Not objWB Is Nothing Then
    MsgBox objWB.Name
Else
    MsgBox "Datei nicht gefunden!"
End If

End Sub

Gruß Tino


 

Beiträge aus den Excel-Beispielen zum Thema "Zähler im Dateinamen beim merhfachen Öffnen"