Hallo Forum,
ich ein Problem beim Wechsel in meinen Tabellen.
Wenn ich in eine Zelle markiere und die Bearbeitungsleiste mit der Maus anklicke und dann in ein anderes Tabellenblatt springe bekomme ich folgende Fehlermeldung.
Der Fehler liegt in meinen Set zuweisungen einmal in Zeile 8,9 und Zeile 59 im folgenden Modulcode.
Es funktioniert eigentlich soweit alles Super, bis ein zwei ander Mängel noch aber die Frage möchte ich gerne in neuen Treads stellen.
Wenn nun jemand eine Lösung hätte wäre das Super den das Projekt hab für meine Arbeit erstellt und benutzen auch ander Kollegen und die Probleme sind dann nicht gerade schön. Da meine Kollegen null Kenntisse von VBA haben.
Gruß
jagga007
ich ein Problem beim Wechsel in meinen Tabellen.
Wenn ich in eine Zelle markiere und die Bearbeitungsleiste mit der Maus anklicke und dann in ein anderes Tabellenblatt springe bekomme ich folgende Fehlermeldung.
Code:
die Methode 'intersect' für das Objekt ' _Application' ist fehlgeschlagen
Der Fehler liegt in meinen Set zuweisungen einmal in Zeile 8,9 und Zeile 59 im folgenden Modulcode.
Code:
Public Sub EingabeZeiten(ByVal Target As Range)
Dim rngRange As Range
Dim rngCell As Range
Dim intHour As Integer
Dim intMinute As Integer
Dim blnWrongInput As Boolean
Set rngRange = Application.Intersect(Target, Range("A25:E25,A27:E27,A30:E32," & _
"A41:E41,A43:E43,A45:E45,A47:E47"))
' Beginn Eingabe der Zeiten ##########
If Not rngRange Is Nothing Then
' Verhindern, dass beim Löschen die UserForm aufgerufen wird
On Error Resume Next
If rngRange = "" Then
Application.EnableEvents = True
Exit Sub
End If
On Error GoTo 0
' Bildschirmaktualisierung und Ereignisse ausschalten
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
' Eingaben innerhalb >>und<< außerhalb des Gültigkeitsbereichs
' werden rückgängig gemacht
For Each rngCell In Target
If Intersect(rngCell, rngRange) Is Nothing Then
Application.Undo
Target(1, 1).Select
GoTo Errorhandler
End If
Next
' Prüfung der Eingabewerte
For Each rngCell In Target
If rngCell = "" Or Not IsNumeric(rngCell) _
Or Len(rngCell) > 4 Or rngCell > 2400 Then
blnWrongInput = True
Target(1, 1) = Empty
GoTo Errorhandler
End If
' Berechnung der Uhrzeit
intHour = rngCell \ 100
intMinute = rngCell - intHour * 100
' Uhrzeit in Zelle schreiben
rngCell = TimeSerial(intHour, intMinute, 0)
' rngCell.NumberFormat = "[hh]:mm" funktioniert nur wenn Zellen formatieren im Blattschutz zugelassen wird
Next rngCell
Else
'##############################################
Set rngRange = Application.Intersect(Target, Range("V17"))
Application.EnableEvents = False ' deaktiviert die Ereignisanzeige
Application.ScreenUpdating = False ' deaktiviert die Bildschirmanzeige und verhindert so das die Einzelschritte eines Codes am Bildschirm wahrgenommen werden können
' Zelle km
With Target(1, 1)
If .Address(0, 0) = "V17" Then
ActiveSheet.Unprotect Password:="Passw"
If .Value = "" Then
.Value = "km"
.Font.Color = &H9B9B9B
Else
.Font.Color = 0
.NumberFormat = "0 ""km"""
End If
ActiveSheet.Protect Password:="Passw"
End If
Application.EnableEvents = True ' deaktiviert die Ereignisanzeige
Application.ScreenUpdating = True ' deaktiviert die Bildschirmanzeige und verhindert so das die Einzelschritte eines Codes am Bildschirm wahrgenommen werden können
End With
'##############################################
End If
Errorhandler:
' Bildschirmaktualisierung und Ereignisse einschalten
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
If blnWrongInput Then
Target.Select
'Target.NumberFormat = "0;-0;;@"
msg_std.Show
End If
' Ende Eingabe der Zeiten ##########
End Sub
Es funktioniert eigentlich soweit alles Super, bis ein zwei ander Mängel noch aber die Frage möchte ich gerne in neuen Treads stellen.
Wenn nun jemand eine Lösung hätte wäre das Super den das Projekt hab für meine Arbeit erstellt und benutzen auch ander Kollegen und die Probleme sind dann nicht gerade schön. Da meine Kollegen null Kenntisse von VBA haben.
Gruß
jagga007