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.
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
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: