per VBA Mappe schließen und überschreiben
24.02.2026 14:33:15
Morris6781
ich versuche eine "Aktualitätsprüfung" zweier Arbeitsmappen durchzuführen und möchte folgendes:
Beim Öffnen der ersten Mappe, soll geprüft werden, ob diese jünger ist, als die Vorlage. Ist die Vorlage jünger, soll die erste Mappe geschlossen werden (ein Überschreiben einer geöffneten Mappe ist ja nicht möglich) und die zweite Mappe den Namen (und Pfad) der ersten bekommen, diese faktisch mit saveas überschreiben. Die Inhalte der älteren Mappe werden vorher übergeben. Übergabe funktioniert problemlos, nur das Speichern unter nicht.
Das Makro der zweiten Mappe läuft solange durch, bis die erste per Anweisung geschlossen wird. In beiden Mappen steht der selbe Code.
Mit application.run funzt es auch nicht.
Hier der sehr vereinfachte Code:
Private Sub Workbook_Open()
AktualitätPrüfen
End Sub
Sub AktualitätPrüfen()
Pfad = ActiveWorkbook.Worksheets("Tabelle1").[A3]
If ActiveWorkbook.Worksheets("Tabelle1").[A1].Value = "Vorlage" Then
Set wb = Workbooks("Mappe2.xlsm")
With wb.Worksheets("Tabelle1")
WBName = .Range("A2")
Pfad = .Range("A3")
End With
Workbooks(WBName).Close SaveChanges:=False 'ohne Speichern schließen
ActiveWorkbook.Worksheets("Tabelle1").[A1].ClearContents 'den Eintrag "Vorlage" löschen
wb.SaveAs Filename:=Pfad & WBName
Exit Sub
Else
Workbooks.Open Filename:=Pfad & "Mappe2.xlsm"
'Application.Run "Mappe2.xlsm!AktualitätPrüfen"
End If
End Sub
Ich komm nicht weiter. Vielleicht habt ihr eine Lösung.
Danke im Voraus
Gruß
Morris
Anzeige