Fehler im VBA-Code
26.08.2004 08:56:00
Torsten K.
Ausgangslage: In meinen Budgetdateien (ca. 30 Dateien) möchte ich ein Worksheet und im Anschluß daran Formeln einfügen. Das zu kopierende WS liegt in der Datei ("AddWS.xls").Sheets("SumET"). Aus dieser Datei heraus möchte ich alle Budgetdateien , die in der gleichen Datei im Sheets("FILES") aufgelistet sind,
aufrufen und das WS("SumET") sowie die im Code enthaltenen Formeln einfügen.
Leider bleibt Excel bei all meinen Versuchen an der Stelle hängen:
With Workbooks("AddWS_TEST")
(Fehlermeldung: "Index außerhalb des gültigen Bereichs")
Hier der komplette Code:
Private Sub cmb_UpDate_Click()
Dim i As Integer
Dim Workbook As Workbook
Dim wbName As String
'On Error GoTo errHandler
Application.ScreenUpdating = False
Application.StatusBar = "Dieser Vorgang dauert ein paar Minuten. Bitte Geduld haben..."
Application.DisplayAlerts = False
Application.EnableEvents = False
For i = 1 To Sheets("FILES").Range("A1").End(xlDown).Row
wbName = Sheets("FILES").Cells(i, 1)
Workbooks.Open wbName, 3
ActiveWorkbook.Save
' Set ActiveWorkbook = Workbooks("AddWS_TEST")
' Workbooks("AddWS_TEST").Sheets("SumET").Copy Before:=Workbooks(wbName).Sheets(17)
' Set ActiveWorkbook = Workbooks(wbName)
With Workbooks("AddWS_TEST")
.Activate
.Sheets("SumET").Copy Before:=Workbooks(wbName).Sheets(17)
End With
'Formeln einfügen in das bereits kopierte WS in wbName:
With Workbooks(wbName).Sheets("SumET")
.Range("E3").FormulaR1C1 = "='ET120'!R6C4"
.Range("F3").FormulaR1C1 = _
"=SUMIF('ET120'!R[4]C[-2]:R[35]C[-2],""C"",'ET120'!R[4]C[-1]:R[35]C[-1])"
.Range("E4").FormulaR1C1 = "='ET140'!R6C4"
.Range("F4").FormulaR1C1 = _
"=SUMIF('ET140'!R[4]C[-2]:R[35]C[-2],""C"",'ET140'!R[4]C[-1]:R[35]C[-1])"
End With
ActiveWorkbook.Save
ActiveWorkbook.Close , True
Next i
Application.DisplayAlerts = True
Application.StatusBar = False
Application.EnableEvents = True
MsgBox "Dateien wurden aktualisiert", vbOKOnly
Application.ScreenUpdating = True
Exit Sub
errHandler:
Application.DisplayAlerts = True
Application.StatusBar = False
Application.EnableEvents = True
MsgBox "Beim Update der Datei" & vbCr & wbName & vbCr & _
"ist ein Fehler aufgetreten!", vbCritical + vbOKOnly, "ABBRUCH!"
'ActiveWorkbook.Close , True
End Sub
Könnt Ihr mir bitte helfen. Wäre wirklich wichtig, damit ich den Vorgang nicht manuelle ausführen muß. Vielen Dank im voraus.
Gruß
Torsten