Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel Schließen wenn kein anderes dokument geöffnet ist.
#1
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?
Antworten Top
#2
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
Antworten Top
#3
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
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top
#4
Hallo,

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

Gruß Uwe
Antworten Top
#5
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
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top
#6
Hallöchen,

eine Frage hätt ich da noch - ist einer, der VBA benutzt, noch normal :15:
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
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
Antworten Top
#8
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.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#9
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
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:
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste