Registriert seit: 28.05.2017
Version(en): 365
Ich nochmal...
ich benötige noch einmal euren super Rat.
Ich habe einige Blätter in meiner Mappe. Sobald ich von einem Blatt ins nächste wechsle, soll eine Msgbox mit einer Abfrage kommen, ob man vorher speichern (per Makro) möchte. Das Problem dabei ist, dass bei dem Worksheet-Event "deactivate" das Blatt bereits gewechselt ist. Auf dem neuen Blatt erscheint die Msgbox und das Speichermakro würde eine pdf vom neuen, anstatt vom alten Blatt machen.
Gibt es irgendeine Alternative wie man das lösen kann?
Wenn dem nicht so ist, gäbes es anstattdessen eventuell eine Möglichkeit, beim Betätigen des "ja"-Knopfes zurück auf das ursprüngliche Blatt zu komme um von dort dann das Speichermakro manuell auszuführen?
Gruß und Danke
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo,
EasY und seine 52 Blätter.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter,
der Misserfolg ist ein Waisenkind
Richard Cobden
Registriert seit: 28.05.2017
Version(en): 365
Klaus-Dieter,
du hast es auch auf mich abgesehen :D ... manno ^^
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Moin mal wieder!
Nimm das Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) in DieseArbeitsmappe.
Sh ist das letzte aktivierte Blatt, welches Du dann auswerten kannst.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• EasY
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo EasY,
Zitat:Klaus-Dieter,
du hast es auch auf mich abgesehen :D ... manno ^^
nicht auf dich, nur auf deine Arbeitsweise.
Ich wünsche dir noch einen schönen Rest 3. Advent.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter,
der Misserfolg ist ein Waisenkind
Richard Cobden
Registriert seit: 28.05.2017
Version(en): 365
Hi Ralf,
super, es klappt! Danke.
Noch eine kurze Ergänzungsfrage: Kann ich innerhalb dieser Prozedur auch überprüfen, ob überhaupt Veränderungen in dem besagten Tabellenblatt vorgenommen wurden? Dass die Msgbox nur aufgerufen wird, wenn Änderungen vorgenommen wurden?!
Gruß
Registriert seit: 11.04.2014
Version(en): 2021
Hallo,
mit der Abfrage - If ActiveWorkbook.Saved = False Then ... - kannst du feststellen, ob etwas geändert wurde oder nicht!
Dazu habe ich in meiner Formelsammlung:
105. ermitteln, ob Tabelle geändert wurde oder nicht
ActiveWorkbook.Saved = True es wurde seit der letzten Speicherung nichts geändert
ActiveWorkbook.Saved = False es ist seit der letzten Speicherung etwas geändert worden
Man muss es dann nur richtig einsetzen und anwenden!
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Registriert seit: 28.05.2017
Version(en): 365
16.12.2018, 20:19
(Dieser Beitrag wurde zuletzt bearbeitet: 16.12.2018, 20:19 von EasY.)
Ich teste es gleich, aber klingt vielversprechend :)
P.S.: Offensichtlich wende ich das dann wohl nicht richtig an :(
Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If ActiveWorkbook.Saved = False Then
If IsNumeric(Sh.Name) Then
If MsgBox("Sie verlassen das Kalenderblatt. Möchten Sie zurückkehren und speichern?", vbYesNo + vbQuestion, "Änderungen speichern") = vbYes Then
Application.EnableEvents = False
Worksheets(Sh.Name).Activate
Application.EnableEvents = True
Call speichern
Else
End If
End If
End Sub
So siehts zurzeit aus
Registriert seit: 11.04.2014
Version(en): 2021
16.12.2018, 20:58
(Dieser Beitrag wurde zuletzt bearbeitet: 16.12.2018, 20:59 von Glausius.)
Hallo,
für mein Verständnis fehlt da ein End If!
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object
If ActiveWorkbook.Saved = False Then
If IsNumeric(Sh.Name) Then
If MsgBox("Sie verlassen das Kalenderblatt. Möchten Sie zurückkehren und speichern?", vbYesNo + vbQuestion, "Änderungen speichern") = vbYes Then
Application.EnableEvents = False
Worksheets(Sh.Name).Activate
Application.EnableEvents = True
Call speichern
Else
End If
End If
End if
End Sub
Ansonsten müsste der Code funktionieren, du hast die Abfrage richtig verstanden und eingesetzt.
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Folgende(r) 1 Nutzer sagt Danke an Glausius für diesen Beitrag:1 Nutzer sagt Danke an Glausius für diesen Beitrag 28
• EasY
Registriert seit: 28.05.2017
Version(en): 365
16.12.2018, 21:19
(Dieser Beitrag wurde zuletzt bearbeitet: 16.12.2018, 21:19 von EasY.)
Nein das war es leider auch nicht ... die msgbox erscheint jedes Mal, wenn ich das Tabellenblatt wechsle.
Pardon, es geht doch - habe den Fehler gefunden. Ein anderes Makro überschreibt beim Verlassen immer eine bestimmte Zeile ... Danke Glausius