Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Datei speichern mit mehreren Bedingungen
08.01.2019 23:16:37
Shiva
Hallo zusammen,
meine Frage bezieht sich auf das Abspeichern einer Datei.
Und zwar sollte das Speichern der Datei erst möglich sein, wenn die Zellen „C5“, „F5“ und „G15“ und G36“ ("von einer anderen User") ausgefüllt wurden. Des Weiteren sollte der Name für die Datei aus der Zelle „L5“ übernommen werden, so dass nach dem Abspeichern die Datei umbenannt wird. Mein Makro sieht bislang wie folgt aus:
Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Nur speichern, wenn ein Ort eingetragen wurde
If Worksheets("Daten").Range("C5") = "" Then
'Arbeitsmappe nicht speichern
MsgBox "Bitte geben Sie einen Ort ein!"
Cancel = True
Else
'Arbeitsmappe speichern
ActiveWorkbook.SaveAs Range("L5").Value & ".xlsm"
MsgBox "Alle Änderungen wurden gespeichert."
End If
End Sub

Außerdem ergibt sich noch folgendes Problem: Wenn ich dieses Makro abspeichern möchte, erscheint natürlich auch die Fehlermeldung, sprich ich werde aufgefordert die Zellen auszufüllen. Wie kann man dies insofern umgehen, dass erst, wenn ein anderer User die Datei öffnet, um sie auszufüllen, die oben genannten Bedingungen erfüllt sein müssen. Die „Rohdatei“ soll folglich von mir auch bei einer leeren Zelle „C5“ abgespeichert werden können. Ich hoffe, das war halbwegs verständlich.. ;)

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei speichern mit mehreren Bedingungen
09.01.2019 08:53:30
Bernd
Servus Shiva,
das dieser Code nur bei anderen Anwendern durchgeführt wird kann z.B. über Application.Username (Nutzername Excel) oder Environ("UserName") (Anmeldename Windows) abgefragt werden.
z.B.:

Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Application.UserName = "Dein Name" Then Exit Sub

Deine Namen kannst du einfach durch eine MsgBox anzeigen lassen.

Sub Test()
MsgBox Application.UserName
MsgBox Environ("Username")
End Sub

Die restlichen Kriterien einfach per "OR" Verknüpfung in deine If-Anweisung:

If Worksheets("Daten").Range("C5") = "" OR Worksheets("Daten").Range("F5") = "" OR Worksheets(" _
Daten").Range("G15") = "" OR Worksheets("Daten").Range("G36") = "" OR Then
Grüße, Bernd
Anzeige
AW: Datei speichern mit mehreren Bedingungen
10.01.2019 22:56:53
Shiva
Hallo Bernd,
erst einmal vielen Dank für deine super schnelle Antwort!! Sie hat mir sehr weiter geholfen :)!!
Ein Problem habe ich jetzt allerdings noch und zwar ploppt die MessageBox "Alle Änderungen wurden gespeichert" zweimal auf und danach hängt sich mein PC bzw. Excel immer auf.. Woran könnte das liegen?
Hier nochmal das aktuelle Makro:
Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Nummer As Variant
Nummer = Range("L5").Value
If Application.UserName = "xxxx" Then Exit Sub
If Worksheets("Daten ").Range("C5") = "" Or Worksheets("Daten ").Range("F5") = "" Or Worksheets( _
"Daten ").Range("G15") = "" Or Worksheets("Daten").Range("G36") = "" Then
MsgBox "Bitte füllen Sie alle Daten aus."
Cancel = True
Else
ThisWorkbook.SaveAs Filename:=Nummer, FileFormat:=52
'52 = xlOpenXMLWorkbookMacroEnabled
MsgBox "Alle Änderungen wurden gespeichert."
End If
End Sub
Viele Grüße, Shiva
Anzeige

327 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige