Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
692to696
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
692to696
692to696
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bei Enter VBA-Code ausführen

Bei Enter VBA-Code ausführen
11.11.2005 11:19:37
Gerhard
Hallo,
ich habe eine Tabelle, in der in einer Zelle Daten im Zeitformat geschrieben werden soll.
Ich will, dass wenn der Benutzer keinen Doppelpunkt schreibt, Excel die Daten automatisch als Uhrzeit erkennt. Gut wäre es auch, wenn Excel das im Tabellenblatt "Eingabe" generell machen würde, ohne sich auf eine bestimmte Zelle zu beziehen. Ich habe mir hier auch zwei VBA-Codes herausgesucht und versucht sie zusammen zu basteln. Da ich leider von VBA keine große Ahnung habe, muß sich dabei ein Fehler eingeschliessen haben. Ich bekomme immer die Fehlermeldung "Typen unverträglich". Kann mir irgendjemand weiterhelfen?
Hier der VBA-Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim sTxt As String
If Target.Address = "$I$14" Then
For Each rng In Selection.Cells
sTxt = rng.Value
rng.NumberFormat = "hh:mm"
rng.Value = TimeSerial(Left(sTxt, 2), Right(sTxt, 2), 0)
Next rng
End If
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Enter VBA-Code ausführen
11.11.2005 11:52:51
u_
Hallo,
mal als Ansatz:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strTmp As String
If IsNumeric(Target) Then
On Error GoTo ERRHDL
Application.EnableEvents = False
strTmp = Right("0000" & CStr(Target), 4)
Target = TimeSerial(Left(strTmp, 2), Right(strTmp, 2), 0)
Target.NumberFormat = "[hh]:mm"
End If
ERRHDL:
Application.EnableEvents = True
End Sub

Gruß
Geist ist geil!
AW: Bei Enter VBA-Code ausführen
11.11.2005 12:04:39
Gerhard
Hallo,
das funktioniert leider nicht ganz. Wenn der Benutzer z.B. nur 40 eingibt, macht Excel daraus Minuten.
Ich habe aber einen anderen Code gefunden, da funktioniert es. Nur hat der den Nachteil, der bezieht sich nur auf eine bestimmte Zeile. Ich hätte es aber gerne, dass es sich auf das ganze Tabellenblatt bezieht.
Hier mein gefundener Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s%, m%
'Soll nur bei einer Eingabe in Spalte I wirksam werden:
If Target.Column <> 9 Then Exit Sub
With Cells(Target.Row, Target.Column)
If .Value = "" Then Exit Sub
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
InStr(.Value, ",") = 0 Then
.NumberFormat = "[hh]:mm"
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 Sub

Anzeige
AW: Bei Enter VBA-Code ausführen
11.11.2005 12:11:38
Uduuh
Hallo,
dann nimm das
If Target.Column 9 Then Exit Sub
raus.
Gruß aus’m Pott
Udo

AW: Bei Enter VBA-Code ausführen
11.11.2005 13:20:29
Gerhard
Danke, jetzt funktioniert es.
Gruß
Gerhard
AW: Bei Enter VBA-Code ausführen
11.11.2005 14:46:42
Gerhard
Hallo,
jetzt habe ich doch noch ein Problem.
In allen anderen Tabellenblättern soll es nur für die Spalten C, D und K so sein, dass wenn der Benutzer kein Doppelpunkt schreibt, Excel die Daten automatisch als Uhrzeit erkennt.
Hier der Code, der aber nur für Spalte C funktioniert:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s%, m%
'Bei einer Eingabe in Spalte C wirksam
If Target.Column <> 3 Then Exit Sub
With Cells(Target.Row, Target.Column)
If .Value = "" Then Exit Sub
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
InStr(.Value, ",") = 0 Then
.NumberFormat = "[hh]:mm"
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 Sub

Anzeige
AW: Bei Enter VBA-Code ausführen
11.11.2005 15:54:29
Gerhard
Hallo,
habe die Lösung gefunden. Jetzt geht alles.

168 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige