VBA-Makro: Benötigte Datei geöffnet?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: VBA-Makro: Benötigte Datei geöffnet? von: VBA-Neuling
Geschrieben am: 08.02.2005 12:33:32

Hallo zusammen!

So langsam wurschtle ich mich durch die VBA-Welt :-)

Folgendes Problem kann ich bislang leider nicht lösen:
Wie kann ich prüfen, ob eine Datei, die in meinem Makro angesprochen wird, schon geöffnet ist?
Ich möchte den Usern meines Makros bei nicht geöffneter Datei eine MsgBox anzeigen lassen, die sagt "Bitte erst Dateixy.xls öffnen!". Diese Box hab ich schon, aber ich bekomme diese Prüfung nicht hin.

Habe bereits in den FAQs geschaut, da ist unter
https://www.herber.de/mailing/001297h.htm
eine Lösung drin, die ich aber nicht verstehe.

Habe versucht mit On Error... bzw. mit If Error... zu arbeiten, funktioniert aber nicht :-(
Wer hat eine möglichst einfache Lösung für mich?
Und wo muss ich diese einbauen?

Schon vor der Anweisung "Windows("Dateixy.xls").Activate"?
Oder erst danach?

Grüßle
Renate

Bild


Betrifft: AW: VBA-Makro: Benötigte Datei geöffnet? von: Heiko S.
Geschrieben am: 08.02.2005 13:35:18

Hallo Renate,

läuft doch gut, das Beispiel von Hans.

Schau mal hier nach, da habe ich ein Beispiel wie man dies Beispiel von Hans nutzen kann.
https://www.herber.de/bbs/user/17627.xls

Die OnError Goto Anweisung mußt du vor deiner Anweisung "Windows("Dateixy.xls").Activate" einbauen.

Gruß Heiko

PS: Das Forum lebt auch von den Rückmeldungen der Frager!


Bild


Betrifft: AW: VBA-Makro: Benötigte Datei geöffnet? von: VBA-Neuling
Geschrieben am: 08.02.2005 13:51:29

Hallo Heiko,

danke erstmal für deine Antwort.

Sorry, aber ich bin absoluter VBA-Neuling und ich kann auch mit deiner mitgeschickten Datei nix anfangen :-(
Ich möchte nicht, dass die Öffnung der benötigten Datei in das Makro eingebaut wird, sondern, dass die User gezwungen werden, die Datei VOR DER NUTZUNG DES MAKROS SELBST ZU ÖFFNEN.

Also das Makro soll nachgucken, ob die Datei offen ist und wenn nicht, eine MsgBox anzeigen "Datei öffnen, aber dalli!" :-)))

Ich dachte, das geht irgendwie mit:

On Error GoTo Dateiöffnen
Err.Raise 9 (weil Laufzeitfehler 9!)

Dateiöffnen:
MsgBox ("Bitte öffnen Sie erst die Datei xy.xls!")
Exit Sub

Weitere Ideen?
Danke!

Grüßle
Renate


Bild


Betrifft: AW: VBA-Makro: Benötigte Datei geöffnet? von: Heiko S.
Geschrieben am: 08.02.2005 14:06:13

Hallo Renate,

dann probier mal dies:


Private Sub CommandButton2_Click()
Dim datei As String
On Error Resume Next
    Workbooks("Mappe3.xls").Activate
    If Err <> 0 Then
        MsgBox ("Bitte öffnen Sie erst die Datei Mappe3.xls !")
        
        ' Aber warum erst eine MsgBox und dann den Dateiauswahldialog denn könnte man
        ' hier doch gleich direkt aufrufen.
        'datei = Application.GetOpenFilename
        'If datei <> "" And datei <> "Falsch" Then
        '    MsgBox ("Bitte öffnen Sie erst die Datei Mappe3.xls !")
        '    Workbooks.Open datei
        'End If
        Err.Clear
        Exit Sub
    End If
End Sub



Gruß Heiko


Bild


Betrifft: AW: VBA-Makro: Benötigte Datei geöffnet? von: VBA-Neuling
Geschrieben am: 08.02.2005 14:37:20

Hallo Heiko,

danke für deine Geduld :-)

Also:
Dein Makro funktioniert gut bei nicht geöffneter Datei, aber wenn die Datei offen ist, springt das Makro einfach in die geöffnete Datei und bleibt da drin stehen, statt mein schönes Makro abzuarbeiten :-(

Makro befindet sich in Datei1, die geöffnet ist
Diese Datei wird als Variable definiert, da sich der Dateiname (durch umbenennende Nutzer) immer wieder ändert.
Datei2 ist die Datei, deren Öffnung das Makro prüfen soll und deren Name immer gleich bleibt.

Sub Makro()
Application.ScreenUpdating = False

Dim datei1
datei1 = ActiveWorkbook.Name

On Error Resume Next
Windows(datei2).Activate
If Err <> 0 Then
MsgBox ("Bitte öffnen Sie erst datei2!")
Err.Clear
Exit Sub
End If

Windows (dtaei2).Activate
Sheets("Deckblatt").Select
....


Bild


Betrifft: Danke, danke, danke!!! :-) von: VBA-Neuling
Geschrieben am: 08.02.2005 14:47:32

Hallo Heiko,

Kommando zurück, es funktioniert!!!
Das Problem lag daran, dass ich Datei1 ebenfalls als Variable "datei" benannt hatte.

Vielen Dank nochmals für deine Geduld!

Grüßle
Renate


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Formular mit mehreren Reitern"