Clever-Excel-Forum

Normale Version: Excel Schließen wenn kein anderes dokument geöffnet ist.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

habe eine Knifflige Frage. Per Schaltfläche soll ein Dokument gedruckt werden, und danach mit samt dem Excel geschlossen werden.

If Workbooks.Count = 1 Then
        Application.DisplayAlerts = False 
        Application.Quit  
        Else
        ActiveWorkbook.Close savechanges:=False
  End If

Dummerweise wird die "Personal.Xlsb" mit gezählt und zumindest ich müsste folgendes nehmen damit es funktioniert.

If Workbooks.Count = 2 Then
        Application.DisplayAlerts = False 
        Application.Quit  
        Else
        ActiveWorkbook.Close savechanges:=False
End If


Dies könnte jedoch einen ungewollten Effekt haben bei Benutztern, die die "Personal.xlsb" nicht haben.
Gibt es noch andere Lösungsansätze?
Ich habe selbst eine Lösung herausgefunden, will euch diese nicht vorenthalten

Sub Dokument_schliessen()

If IsWorkbookOpen("PERSONAL.XLSB") Then
        If Workbooks.Count = 2 Then
             Application.DisplayAlerts = False
             Application.Quit
        Else
             ActiveWorkbook.Close savechanges:=False
        End If
      Else
        If Workbooks.Count = 1 Then
            Application.DisplayAlerts = False
            Application.Quit
        Else
            ActiveWorkbook.Close savechanges:=False
        End If
     End If 

End Sub




Function IsWorkbookOpen(strWB As String) As Boolean
   On Error Resume Next
   IsWorkbookOpen = Not Workbooks(strWB) Is Nothing
End Function
Hi,

anbei eine Alternative

Code:
Option Explicit
Sub xls_schliesen()
    Application.DisplayAlerts = False
    If WBCount > 1 Then ThisWorkbook.Close savechanges:=False Else: Application.Quit
End Sub
Private Function WBCount() As Integer
    Dim wb As Workbook
    For Each wb In Application.Workbooks
        If InStr(1, wb.Name, "PERSONAL.XLSB") = 0 Then WBCount = WBCount + 1
    Next
    Set wb = Nothing
End Function

lg
Chris
Hallo,

Versteift Euch doch nicht so sehr auf die Persönliche Arbeitsmappe. Wink
Es könnten noch mehr (ausgeblendete Mappen geladen sein.

Gruß Uwe
Hallo Uwe,

:)
stimmt, aber
wer blendet schon Arbeitsmappen aus, ich vermute ca. 99% der "normalen" Anwender wissen nicht mal das es die Möglichkeit gibt Mappen auszublenden.

lg
Chris
Hallöchen,

eine Frage hätt ich da noch - ist einer, der VBA benutzt, noch normal :15:
Hallo,
für alle Beknackten, die noch VBA benutzen, hier mein Dateinamen unabhängiger Vorschlag:  [Bild: sm13.gif]
Sub Dokument_schliessen()
 If IchBinNichtAllein(ThisWorkbook) Then
   ThisWorkbook.Close False
 Else
   ThisWorkbook.Saved = True
   Application.Quit
 End If
End Sub

Function IchBinNichtAllein(Ich As Workbook) As Boolean
 Dim oWb As Workbook
 For Each oWb In Workbooks
   If oWb.Windows(1).Visible And oWb.Name <> Ich.Name Then
     IchBinNichtAllein = True
     Exit For
   End If
 Next oWb
End Function

Gruß Uwe
Hallo zusammen,

(24.02.2016, 16:15)chris-ka schrieb: [ -> ]...wer blendet schon Arbeitsmappen aus, ich vermute ca. 99% der "normalen" Anwender wissen nicht mal das es die Möglichkeit gibt Mappen auszublenden.

zu diesen 99% gehöre ich zwar nicht. Mir erschließt allerdings überhaupt nicht, aus welchem Grund eine Mappe ausgeblendet werden soll. Diese Funktion ist in meinen Augen überflüssig wie ein Kropf.
Hallo,

eine Arbeitsmappe auszublenden macht z.B. dann Sinn, wenn sie bei der Arbeit stört oder überflüssig ist. Ich verhindere dadurch den direkten Zugriff auf die Datei. Der user muss sie erst einblenden, um darin etwas zu ändern, oder ... Das wäre dann diesbezüglich ähnlich wie ein AddIn. Ich könnte nun ja behaupten, AddIns sind überflüssig - ausgeblendete Arbeitsmappen geh'n ja auch. Ich tu's aber nicht Smile
Hi André,

Zitat:wenn sie bei der Arbeit stört oder überflüssig ist.

lieben Dank für deine Erklärung. So vage hatte ich an diese Möglichkeit gedacht - aber das deckt sich mit meiner Meinung, eine Mappe, die ich nicht brauche, zu schließen. Diese Methode spart wohl auch noch Arbeitsspeicher.

Aber wie heißt's bei uns so schön: Katz mag Meis, i it amol broata.
Für Nichtallgäuer: Die Katze mag Mäuse, ich mag sie nicht einmal gebraten. :32:
Seiten: 1 2