Anzeige
Archiv - Navigation
280to284
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
280to284
280to284
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeitangabemakro einbinden

Zeitangabemakro einbinden
17.07.2003 22:23:44
Christof
Ich kann unteres Makro nicht für den Bereich "C10:F32" einbinden. Kann mir bitte jemand helfen? Danke.
Gruß Christof

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 4 Then Exit Sub
If merker = True Then
merker = False
Exit Sub
End If
merker = False
fehler = False
'Sonderfall 24:00 oder 00:00
If Target = 1 Or Target = 0 Then
'    merker = True
Target.NumberFormat = "h:mm"
Exit Sub
End If
'Abfangen von Eingaben wie 12:34
'sie ergeben in der Zelle 00:00
If Target < 1 Then
Var = Format(Target, "hh:mm")
If Var = "00:00" Then
fehler = True
GoTo marke
End If
End If
'Abfangen von Eingaben wie 'Abfangen von Eingaben wie 56:78
If InStr(1, Var, ":", vbTextCompare) > 0 Then
If Len(Var) <> 5 Then fehler = True
std = Left(Var, 2)
If std >= 24 Then fehler = True
Min = Right(Var, 2)
If Min >= 60 Then fehler = True
GoTo marke
End If
lg = Len(Target)
If lg = 2 Then
std = "00"
Min = Target
If Min >= 60 Then fehler = True
ElseIf lg = 3 Or lg = 4 Then
std = Left(Target, lg - 2)
If std > 24 Then fehler = True
Min = Right(Target, 2)
If Min >= 60 Then fehler = True
ElseIf lg > 4 Then
fehler = True
End If
marke:
If fehler = True Then
Target.Select
MsgBox "keine korrekte Zeitangabe"
merker = True
Target.ClearContents
Else
merker = True
'Sonderfall
If Target = "2400" Then
merker = True
Target.Value = "00:00"
Else
merker = True
Target.Value = Format(std & ":" & Min, "hh:mm")
End If
End If
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeitangabemakro einbinden
17.07.2003 23:02:29
Nepumuk
Hallo Christof,
versuch es mal so:

Option Explicit
Dim merker As Boolean, fehler As Boolean, var, Std, Min, lg As Long
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, Range("C10:F32")) Is Nothing Then Exit Sub
If merker = True Then
merker = False
Exit Sub
End If
Application.EnableEvents = False
merker = False
fehler = False
'Sonderfall 24:00 oder 00:00
If Target = 1 Or Target = 0 Then
'        merker = True
Target.NumberFormat = "h:mm"
Exit Sub
End If
'Abfangen von Eingaben wie 12:34
'sie ergeben in der Zelle 00:00
If Target < 1 Then
var = Format(Target, "hh:mm")
If var = "00:00" Then
fehler = True
GoTo marke
End If
End If
'Abfangen von Eingaben wie 'Abfangen von Eingaben wie 56:78
If InStr(1, var, ":", vbTextCompare) > 0 Then
If Len(var) <> 5 Then fehler = True
Std = Left(var, 2)
If Std >= 24 Then fehler = True
Min = Right(var, 2)
If Min >= 60 Then fehler = True
GoTo marke
End If
lg = Len(Target)
If lg = 2 Then
Std = "00"
Min = Target
If Min >= 60 Then fehler = True
ElseIf lg = 3 Or lg = 4 Then
Std = Left(Target, lg - 2)
If Std > 24 Then fehler = True
Min = Right(Target, 2)
If Min >= 60 Then fehler = True
ElseIf lg > 4 Then
fehler = True
End If
marke:
If fehler = True Then
Target.Select
MsgBox "keine korrekte Zeitangabe"
merker = True
Target.ClearContents
Else
merker = True
'Sonderfall
If Target = "2400" Then
merker = True
Target.Value = "00:00"
Else
merker = True
Target.Value = Format(Std & ":" & Min, "hh:mm")
End If
End If
Application.EnableEvents = True
End Sub


Die Anweisungen Application.EnableEvents = False bzw. True dienen dazu, dass das Makro bei der Ausgabe der korregierten Werte nicht nochmals aufgerufen wird.
Gruß
Nepumuk

Anzeige
AW: Zeitangabemakro einbinden
18.07.2003 21:39:52
Christof
Hallo Nepumuk,
leider klappt es nicht ganz mit dem Makro. Ich habe meine datei Angehängt mit der das Makro verbunden ist. Kannst du bitte noch einmal schauen woran es hängt. Vielen Dank.
Gruß Christof

AW: Zeitangabemakro einbinden
19.07.2003 03:28:07
Nepumuk
Hallo Christof,
da ist noch eine Zeile mit einer Dim-Anweisung drin von meinem Test. Die muss natürlich raus.
Gruß
Nepumuk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige