23.10.2020, 11:52
Hallo zusammen,
darf ich Euch mal wieder um Euren Rat bitten?
Ein Makro, das bislang funktioniert hatte, verweigert plötzlich seinen Dienst.
Die Aufgabe des Makros ist aus seiner eigenen Arbeitsmappe heraus ein Tabellenblatt aus einer anderen Mappe zu kopieren.
Das hat bisher auch perfekt funktioniert. Es wurden auch keine Namensänderungen der Quell- oder Zieldatei vorgenommen und die Dateien befinden sich am gleichen Speicherort wie bisher.
Vielleicht könnt Ihr mir einen Tipp geben, woran es liegen könnte, dass das Makro mit dieser Fehlermeldung stoppt?
"Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"
Hier das Makro:
Was geht hier schief? Vielleicht könnt Ihr mir helfen?
darf ich Euch mal wieder um Euren Rat bitten?
Ein Makro, das bislang funktioniert hatte, verweigert plötzlich seinen Dienst.
Die Aufgabe des Makros ist aus seiner eigenen Arbeitsmappe heraus ein Tabellenblatt aus einer anderen Mappe zu kopieren.
Das hat bisher auch perfekt funktioniert. Es wurden auch keine Namensänderungen der Quell- oder Zieldatei vorgenommen und die Dateien befinden sich am gleichen Speicherort wie bisher.
Vielleicht könnt Ihr mir einen Tipp geben, woran es liegen könnte, dass das Makro mit dieser Fehlermeldung stoppt?
"Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"
Hier das Makro:
Code:
Public Sub MainCopy()
Dim wksSheet As Worksheet
Dim objFile As Object
iPath = "D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\Sellin\2020 Auswertungen\"
strSourceFile = "SunTec_Monitoring_AKT.xlsm"
On Error GoTo Fin
Set objFile = GetObject(iPath & strSourceFile)
For Each wksSheet In objFile.Worksheets
If wksSheet.Tab.ColorIndex = 43 Then
If Not fncSheetExist(ThisWorkbook.Name, wksSheet.Name) Then
wksSheet.Copy After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
strTeilName = ActiveSheet.Name
numSheet = Mid(strTeilName, 4, 2)
If Left(numSheet, 1) = 0 Then
numSheet = Mid(strTeilName, 5, 1)
Else
cName = ActiveSheet.CodeName
ThisWorkbook.VBProject.VBComponents(cName).Properties(5).Value = "Tabelle" & numSheet
End If
End If
End If
Next wksSheet
Fin:
Call Create_Hyperlink_Table_of_Contents
End Sub
Das Makro bricht bei " fncSheetExist" ab, obwohl wkbTemp und strName die richtigen Werte, sprich Dateinamen und Blattnamen enthält.
Private Function fncSheetExist(ByVal wkbTemp As String, ByVal strName As String) As Boolean
On Error Resume Next
fncSheetExist = Not Workbooks(wkbTemp).Worksheets(strName) Is Nothing
Err.Clear
End Function
Was geht hier schief? Vielleicht könnt Ihr mir helfen?