Irgendwie hänge ich mit einem Makro zum Schließen einer Datei. Mit nachfolgendem Makro soll eine von zwei Dateien geschlossen werden.
Sub Datei_schließen()
Dim strWorkBookName As String
Dim strBlattName As String
Dim strTerminkalenderName As String
'On Error GoTo ERRORHANDLER
Application.ScreenUpdating = False
strTerminkalenderName = ThisWorkbook.Name
strWorkBookName = ThisWorkbook.Sheets("Hilfstabelle").Range("B19")
strBlattName = ThisWorkbook.Sheets("Hilfstabelle").Range("B20")
If Hilfstabelle.Range("B19") = "" Then
MsgBox "Es ist keine Datei, die geschlossen werden könnte, geöffnet." _
& vbLf & vbLf _
& "Der Vorgang wird beendet...", vbInformation, "Abbruch..."
Exit Sub
End If
Windows(strTerminkalenderName).Activate
With Workbooks(CStr(ThisWorkbook.Name)).Sheets(strBlattName)
.Activate
.Unprotect
'.Cells(Selection.Row, 1).Activate
End With
'ThisWorkbook.Sheets("Hilfstabelle").Range("B19") = ""
'ThisWorkbook.Sheets("Hilfstabelle").Range("B20") = ""
ActiveWindow.WindowState = xlMaximized
Workbooks(strWorkBookName).Close True
End Sub
Nun ist es so, dass das Makro immer in der Zeile Windows(strTerminkalenderName).Activate aussteigt mit der Fehlermeldung Laufzeitfehler 9, Index außerhalb des gültigen Bereichs. Ich weiß leider nicht warum, denn wenn ich nach dem Fehler im Debugg-Modus über die Variable strTerminkalenderName fahre, wird mir der richtige Dateiname angezeigt.Was ich noch dazu sagen muss, dass das Makro aus der 2. Datei angesprochen wird, sich aber in Datei 1 befindet. In Datei 2 steht die Befehlszeile Application.Run "'" & strwkbName & "'!Datei_schließen" zum Starten des Makros in Datei 1.
Weiß jemand warum ich den Fehler erhalte oder mache ich grundsätzlich etwas verkehrt?
Danke Euch schon mal für die Hilfe,
Kasimir