Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Before_Close hat Einfluss auf Before_Save

Before_Close hat Einfluss auf Before_Save
16.02.2016 16:57:20
Fred
Hallo zusammen,
ich habe ein verzwicktes Problem wo ich einfach nicht weiter komme.
Ich habe folgenden Code, welcher beim Schließen alle unbeschriebenen Zellen sperrt, damit diese beim nächsten öffnen nicht überschrieben oder geändert werden können:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim bolSaved As Boolean
Dim rngCell As Range
Dim wks As Worksheet
On Error Resume Next
bolSaved = Me.Saved
For Each wks In Me.Worksheets
With wks
Select Case wks.Name
Case "Tabelle ABA", "Tab10"
'Diese Tabellenblätter überspringen
Case Else
.Unprotect ("Passwort")
For Each rngCell In .Range("A6:S112").Cells
If rngCell.MergeCells = True Then
rngCell.MergeArea.Locked = rngCell.MergeArea.Range("A1")  ""
Else
rngCell.Locked = rngCell.Value  ""
End If
Sprungmarke:
Next
.Protect ("Passwort")
End Select
End With
Next wks
If bolSaved = True Then Me.Save
End Sub
Der Code funktioniert, ABER... er hat Einfluss auf einen anderen Code, welcher in jeweils 4 Zellen das Datum bzw. die Zeit beim Speichern einträgt. Das ist dieser (Siehe unten die Zellen U44, U101, U39, U97):

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.ScreenUpdating = False
Dim arWS As Variant, i As Integer
Dim rng As Range
Dim BereichAlle As Range, Bereich1 As Range, Bereich2 As Range, Bereich3 As Range
arWS = Array("erster Prüflauf", "zweiter Prüflauf", "dritter Prüflauf", "vierter Prüflauf")
For i = 0 To UBound(arWS)
Set Bereich1 = Worksheets(arWS(i)).Range("BD57")
Set Bereich2 = Worksheets(arWS(i)).Range("BE57")
Set Bereich3 = Worksheets(arWS(i)).Range("BF57")
Set BereichAlle = Union(Bereich1, Bereich2, Bereich3)
For Each rng In Bereich1
If rng  1 Then
MsgBox "ERSTES Ereignis unvollständig! Bitte alle ROT markierten Pflichtfelder  _
beschriften!"
Cancel = True
Exit Sub
End If
Next rng
For Each rng In Bereich2
If rng  1 Then
MsgBox "ZWEITES Ereignis unvollständig! Bitte alle ROT markierten Plichtfelder  _
beschriften!"
Cancel = True
Exit Sub
End If
Next rng
For Each rng In Bereich3
If rng  1 Then
MsgBox "DRITTES Ereignis unvollständig! Bitte alle ROT markierten Pflichtfelder  _
beschriften!"
Cancel = True
Exit Sub
End If
Next rng
Next i
For i = 0 To UBound(arWS)
Worksheets(arWS(i)).Range("U44").Value = Date
Worksheets(arWS(i)).Range("U101").Value = Date
Worksheets(arWS(i)).Range("U39").Value = Time
Worksheets(arWS(i)).Range("U97").Value = Time
Next i

Application.ScreenUpdating = True
End Sub
...denn sobald der oberer Code "Before_Close" eingefügt wird, aktualisiert er auch beim schließen das Datum und die Zeit, was aber nur beim speichern sein darf.
Nehme ich den ersten Code "Before_Close" wieder raus, aktualisiert er nur beim speichern, was ja auch erwünscht ist. Allerdings sind dann die verbundenen Zellen nicht mehr beim nächsten Öffnen gesperrt :-(
Hat einer eine Idee, wie man das weg bekommt, so das kein Einfluss entsteht?
Grüße
Fred

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

Betreff
Datum
Anwender
Anzeige
AW: Before_Close hat Einfluss auf Before_Save
17.02.2016 09:39:53
Herbert
Hallo Fred,
in deinem beforeclose-Code speicherst du ja mit dieser Zeile die AM: If bolSaved = True Then Me.Save
Logisch, dass dann die beforesave-Routine anspringt. Oder habe ich da etwas falsch verstanden?
Servus

AW: Before_Close hat Einfluss auf Before_Save
17.02.2016 12:48:28
Fred
Hallo Herbert,
ja klar logisch ... ich Holzkopf, hätte ich auch sehen können :-)
Danke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige