ich habe eine Datei in der ich beim Öffnen mittels Makro alle xls.Dateien eines Verzeichnisses jedesmal neu auslese. Daher möchte ich verhindern, dass beim Schließen dieser Datei die Frage nach dem Speichen erscheint. Ist das möglich?
Daniel
ich habe eine Datei in der ich beim Öffnen mittels Makro alle xls.Dateien eines Verzeichnisses jedesmal neu auslese. Daher möchte ich verhindern, dass beim Schließen dieser Datei die Frage nach dem Speichen erscheint. Ist das möglich?
Daniel
eine Entscheiden Sache hast Du vergessen. Soll grundsätzlich gespeichert werden oder nicht.
In VBA in DieseArbeitsmappe
wenn gespeichert werden soll ansonsten False
Gruß Hajo
wenn nicht gespeichert werden soll, versuch mal:
Application.DisplayAlerts = False 'schaltet Excel-Warnungen aus
ThisWorkbook.Close ' schließt
Application.DisplayAlerts = True 'schaltet Warnungen wieder ein
Gruß
AJK
ich möchte folgendes: Ich als Administrator möchte schon eine Möglichkeit zum Speichern der Datei (falls ich irgendwelche Kriterien zum auslesen ändere oder so). Alle anderen sind nur Anwender, die die Datei nur zum lesen benutzen. Wenn nun ein Anwender die Datei wieder schließt, soll die Abfrage unterbleiben!
Daniel
füge in meinem Code einen Vergleich ein. Mit Benutzer.
119. Benutzernamen zu Autorisationzwecken abfragen
x1 = Environ("COMPUTERNAME")
x2 = Environ("USERNAME")
MsgBox Environ("WINDIR") Windowsinstallationsphad
Username von Netzwerkanmeldung NT
und noch viele andere schöne Informationen (statt "yyy" mal hinter ENVIRON in der Klammer Zahlen eingeben. 1 bis xx
26 Standardverzeichnis ???
oder andere Betriebsysteme
Dim BName As String
Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
Sub Benutzerfilter()
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
GetUserName Buffer, BuffLen
BName = Left(Buffer, BuffLen - 1)
If BName <> "Jürgen" Then Exit Sub
'--------------------------------------
' Andere Ausführungen, wenn Name stimmt
'--------------------------------------
End Sub
Von Jürgen Wenzel
Ich habe jetzt leider keine Zeit.
Gruß Hajo
das funktioniert super, ABER: dann kann ich keine geöffneten Dateien mehr bearbeiten, sondern nur mehr die gesamte Excel-Sitzung schließen!
Daniel
Sub Auto_Close()
Application.DisplayAlerts = False
ThisWorkbook.Close
Application.DisplayAlerts = True
End Sub
Danke AJK!
Daniel
Um die Abfrage nach "Speichern" beim Schließen einer Excel-Datei zu verhindern, kannst Du den folgenden VBA-Code verwenden. Dieser Code schaltet die Warnungen von Excel aus und schließt die Arbeitsmappe ohne Abfrage.
Öffne Excel und lade die Datei, in der Du die Abfrage unterdrücken möchtest.
Drücke ALT + F11
, um den VBA-Editor zu öffnen.
Wähle im Projekt-Explorer Deine Arbeitsmappe aus.
Klicke mit der rechten Maustaste auf "DieseArbeitsmappe" und wähle "Code anzeigen".
Füge den folgenden Code ein:
Sub Auto_Close()
Application.DisplayAlerts = False ' Schaltet Excel-Warnungen aus
ThisWorkbook.Close ' Schließt die Arbeitsmappe
Application.DisplayAlerts = True ' Schaltet Warnungen wieder ein
End Sub
Speichere die Datei und schließe den VBA-Editor.
Teste das Schließen der Datei, um sicherzustellen, dass die Abfrage nicht mehr erscheint.
Problem: Excel fragt beim Schließen trotzdem nach dem Speichern.
Problem: Excel schließt sich beim Speichern und Du kannst keine geöffneten Dateien mehr bearbeiten.
Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die Einstellungen in Excel anpassen. Gehe zu:
Diese Methode hat jedoch den Nachteil, dass sie für alle Dateien gilt und nicht nur für die spezifische Arbeitsmappe.
Angenommen, Du arbeitest mit einer Datei, in der Du regelmäßig Daten aus anderen Quellen importierst. Mit dem obigen VBA-Code kannst Du sicherstellen, dass beim Schließen der Datei keine Abfrage erscheint, wenn Du nicht speichern möchtest.
Sub Auto_Close()
Application.DisplayAlerts = False
ThisWorkbook.Close SaveChanges:=False ' Schließt ohne zu speichern
Application.DisplayAlerts = True
End Sub
In diesem Beispiel wird die Datei ohne Speichern geschlossen, was hilfreich ist, wenn Du keine Änderungen vornehmen möchtest.
Application.DisplayAlerts = False
nur für spezifische Szenarien, in denen Du sicher bist, dass keine wichtigen Daten verloren gehen.Environ
-Befehl in VBA realisieren, um Benutzerinformationen abzufragen.1. Wie kann ich die Abfrage nach dem Speichern wieder aktivieren?
Du kannst die Zeile Application.DisplayAlerts = False
aus Deinem VBA-Code entfernen oder auf True
setzen.
2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen (z.B. Excel 2010 und später).
3. Kann ich den Code so anpassen, dass er nur für bestimmte Benutzer funktioniert?
Ja, Du kannst den Code erweitern, um den Benutzernamen zu überprüfen, bevor die Datei geschlossen wird. Nutze dafür den Environ
-Befehl, um Benutzerinformationen zu erhalten.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen