Prüfen, ob nur Excel offen oder auch Arbeitsmappen

28/04/2008 - 12:14 von Claudia | Report spam
Hallo Excel-Gemeinde,

ich möchte mit VBA prüfen, ob nur Excel offen ist, oder auch Dateien
in Excel.
Mit zwei Teilen bin ich am rumprobieren:

If Tasks.Exists("Microsoft Excel") Then
If Tasks.Exists("Microsoft Excel") Then
MsgBox "Bitte schließen Sie zuerst alle Excel-Dateien",
vbInformation
Tasks("Microsoft Excel").Activate
Exit Sub
Else
''' Tu dies und das
End If
End If

->>>> Passt nicht ganz, weil Excel kann offen bleiben, nur eben
keine Dateien.

If Workbooks.Count <> 0 Then
MsgBox "Bitte schließen Sie zuerst alle Excel-Dateien",
vbInformation
Exit Sub
Else
''' Tu dies und das
End If

-> Schon besser, nur kommt mir hier die personal.xlsb in die Quere,
die scheinbar auch als geöffente Datei gerechnet wird.

Umgebung: WinXP Prof und Excel 2007 SP1

Hat jemand einen Verbesserungsvorschlag?

Vielen Dank und Grüße
Claudia
 

Lesen sie die antworten

#1 stefan onken
28/04/2008 - 14:07 | Warnen spam
On 28 Apr., 12:14, Claudia wrote:
Hallo Excel-Gemeinde,

ich möchte mit VBA prüfen, ob nur Excel offen ist, oder auch Dateien
in Excel.
Mit zwei Teilen bin ich am rumprobieren:

    If Tasks.Exists("Microsoft Excel") Then
        If Tasks.Exists("Microsoft Excel") Then
            MsgBox "Bitte schließen Sie zuerst alle Excel-Dateien",
vbInformation
            Tasks("Microsoft Excel").Activate
            Exit Sub
       Else
        ''' Tu dies und das
        End If
    End If

->>>> Passt nicht ganz, weil Excel kann offen bleiben, nur eben
keine Dateien.

    If Workbooks.Count <> 0 Then
        MsgBox "Bitte schließen Sie zuerst alle Excel-Dateien",
vbInformation
        Exit Sub
    Else
        ''' Tu dies und das
    End If

-> Schon besser, nur kommt mir hier die personal.xlsb in die Quere,
die scheinbar auch als geöffente Datei gerechnet wird.

Umgebung: WinXP Prof und Excel 2007 SP1

Hat jemand einen Verbesserungsvorschlag?

Vielen Dank und Grüße
Claudia



hallo Claudia,
der obere Teil mit Tasks funktioniert mE so nicht in Excel, das geht
nur in Word.
Workbooks.Count wàre da die richtige Wahl, ggfls musst du prüfen, ob
die personl.xls geöffnet ist

If Workbooks.Count <> 0 Then
If Workbooks.Count =1 Then
If Workbooks(1).Name ="Personl.xlsm" Then

Evtl ist es besser, eine neue Excelinstanz zu erstellen?
Set xl = CreateObject("excel.application")
xl.Visible = True
xl.Workbooks.Add

diese Instanz enthàlt dann weder personl.xlsm noch andere Dateien aus
Excel-Startverzeichnissen.
Und wenn du xl.Visible =true weglàsst, làuft das unsichtbar "im
Hintergund".

Gruß
stefan

Ähnliche fragen