Makro läuft nicht Hilfe!
02.11.2004 08:37:20
Silvie
Brauche dringend Eure Hilfe, habe ein Makro aufgezeichnet (geht bestimmt kürzer, aber kenn mich leider nicht so aus). Das soll Daten aus einer Eingabedatei in eine andere Datei übertragen (mehrere Tabellenblätter). Leider kommt dann immer der Fehler "Index außerhalb gültigen Bereichs".
Habe ein Makro eingebaut, das die Zeiteingabe ohne Doppelpunkt ermöglicht. Kann es sein, daß es damit zusammenhängt?
Gruß
Silvie
Sub übertragen()
Sheets("Linie1").Activate
Range("A3:B5").Select
Selection.Copy
Windows("quelle.xls").Activate
Sheets("L1").Select
Range("S105").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Workbooks("Eingabeformular.xls").Sheets("Linie1").Activate
Range("D9:D13").Select
Application.CutCopyMode = False
Selection.Copy
Windows("quelle.xls").Activate
Range("C105").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveWindow.SmallScroll ToRight:=4
Windows("Eingabeformular.xls").Activate
Range("D5:D6").Select
Application.CutCopyMode = False
Selection.Copy
Windows("quelle.xls").Activate
Range("V108").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows("Eingabeformular.xls").Activate
Range("D18:D22").Select
Application.CutCopyMode = False
Selection.Copy
Windows("quelle.xls").Activate
Range("C114").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("D113").Select
Worksheets("Linie2").Activate ... usw. bis Linie 13
Makro Zeiteingabe ohne Doppelpunkt:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count = 1 And Not Intersect(Target, Range("A3:B5")) Is Nothing Then
Formatierung (Target.Address(False, False))
End If
End Sub
Sub Formatierung(Zelle)
If ActiveSheet.Name "speichern" Then
Dim s%, m%
With Range(Zelle)
If .Value = "" Then Exit Sub
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And InStr(.Value, ",") = 0 Then
If Len(.Value) > 2 Then
s = Left(.Value, Len(.Value) - 2)
m = Right(.Value, 2)
Else
s = .Value
m = 0
End If
.Value = s & ":" & m
End If
End With
End If
End Sub