Lizzy Frog
Cadet 2nd Year
- Registriert
- Jan. 2015
- Beiträge
- 17
Hallo! 
Ich möchte von einem Workbook auf andere zugreifen und die Werte übernehmen
Die soll jedoch automatisch laufen. Eigentlich klappt es auch, nur an einer Stelle hapert es.
Ich habe eine Batch erstellt, die folgendermaßen aussieht:
Sie startet alle Workbooks, auf die ich zugreifen will, und im Anschluss führt er Summe.vbs aus.
Diese sieht so aus:
Modul 1 in bsp.xlsm sieht so aus:
Er hängt sich immer bei Zeile 41 auf.
Die Fehlermeldung sagt: "Index außerhalb des Gültigen Bereichs"
Anscheinend kann er auf die Anderen Workbooks nicht zugreifen. Die Meldung kommt nämlich schon beim ersten Durchlauf durch die Schleife.
Wenn ich die Workbooks jetzt Manuell öffne und Modul 1 ausführe klappt es wunderbar.
Woran liegt das und wie kann ich die Fehlermeldung verhinder, dass es auch automatisch funktioniert?
MfG

Ich möchte von einem Workbook auf andere zugreifen und die Werte übernehmen
Die soll jedoch automatisch laufen. Eigentlich klappt es auch, nur an einer Stelle hapert es.
Ich habe eine Batch erstellt, die folgendermaßen aussieht:
Code:
for %%i in ("T:\test\*.xlsm") do start "" "%%~i"
start "" "T:\test\Excel\Summe.vbs"
pause
Diese sieht so aus:
Code:
Option Explicit
Dim objExcel, objWorkBook
Set objExcel = CreateObject("excel.application")
objExcel.Visible = False
Set objWorkBook = objExcel.Workbooks.Open("T:\test\bsp.xlsm")
objExcel.Run "bsp.xlsm!modul1.Summe"
objWorkBook.Close True
objExcel.Quit
Set objWorkBook = Nothing
Set objExcel = Nothing
Modul 1 in bsp.xlsm sieht so aus:
Code:
Sub Summe()
Dim ws1 As Worksheet, ws2 As Worksheet, ws22 As Worksheet, wb1 As Workbook, wb2 As Workbook
Dim n As String
Dim Spalte As Integer
Dim Zeile As Integer
Dim Temp As String
Dim Datum As String
Dim Jahr As Integer
Dim Monat As String
Jahr = Format(Date - 30, "YY")
Monat = Format(Date - 30, "MMM")
Set wb1 = Workbooks("Reklamationen.xlsm")
Set ws1 = wb1.Worksheets(Sheets.Count)
Application.ScreenUpdating = False
wb1.Activate
ws1.Select
For Zeile = 20 To Range("A1048576").End(xlUp).Row
Datum = Cells(Zeile, 1).Value
If Datum = "01." & Format(Date - 30, "MM") & ".20" & Jahr Then
Exit For
End If
Next Zeile
Spalte = 2
Do Until Cells(29, Spalte).Value = "Gruppe"
n = Cells(29, Spalte).Value
Set wb2 = Workbooks("Liste " & n & ".xlsm")
Set ws2 = wb2.Worksheets("Pas.")
wb2.Activate
ws2.Select
Temp = Cells(2, 15).Value
Set ws22 = wb2.Worksheets("Akt.")
ws22.Select
Temp = Temp & "+" & Cells(2, 13).Value
wb1.Activate
ws1.Select
Temp = "=" & Temp
Cells(Zeile, Spalte).Select
ActiveCell.FormulaLocal = Temp
Spalte = Spalte + 1
Loop
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Er hängt sich immer bei Zeile 41 auf.
Die Fehlermeldung sagt: "Index außerhalb des Gültigen Bereichs"
Anscheinend kann er auf die Anderen Workbooks nicht zugreifen. Die Meldung kommt nämlich schon beim ersten Durchlauf durch die Schleife.
Wenn ich die Workbooks jetzt Manuell öffne und Modul 1 ausführe klappt es wunderbar.
Woran liegt das und wie kann ich die Fehlermeldung verhinder, dass es auch automatisch funktioniert?
MfG
Zuletzt bearbeitet: