Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
348to352
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
348to352
348to352
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeitformatierung ohne ":" (VBA)?

Zeitformatierung ohne ":" (VBA)?
07.12.2003 14:42:09
Benjamin
Hallo Forum,

ich habe (wieder einmal) ein Problem mit VBA und hoffe, das ihr mir (auch wieder einmal) weiterhelfen könnt.

Mein Problem:
--------------------
In Tabelle1 müssen in verschiedenen Bereichen (I9:J39, O9:Q39, T9:Y39 und AA9:AA39) Zeitwerte eingetragen werden.

Allerdings ist es bei der Arbeit ausgesprochen hinderlich, jeden Zeitwert mit Doppelpunkt einzugeben.

Gibt es eine Möglichkeit, den Zeitwert per Komma einzugeben und möglichst beim Verlassen des Feldes per VBA richtig zu formatieren?

Vielen Dank im Voraus für jeden Tip, oder besser, für einen Beispiel-Code (meine VBA-Kenntnisse sind leider noch sehr begrenzt).

Gruss Benny

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeitformatierung ohne ":" (VBA)?
07.12.2003 14:44:34
GerdW
Gib zwei ,, ein und in Autokorrektur ersetzem ,, durch :

Gerd
NO:Zeitformatierung ohne ":" (VBA)?
07.12.2003 14:50:34
Benjamin
Hallo Gerd,

danke für Deinen Tip!

Gibt es dazu vielleicht auch eine Lösung per VBA?

Gruss Benny
AW: Zeitformatierung ohne ":" (VBA)?
07.12.2003 14:49:01
Ramses
Hallo

kopiere den Code in das Klassenmodul deiner Tabelle wo du die Funktion haben möchtest.
(Rechte Maustaste auf Tabellenregister > Code Anzeigen)



Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
'"Target.Column <> 7" = Eingabe nur in Spalte G erlaubt
'"Target.Row < 16" = Eingabe nur von Zeile 1 bis 15
If Target.Column <> 7 Or Target.Row < 16 Then
    Application.EnableEvents = True
    Exit Sub
End If
If InStr(1, Selection.Address, ":") > 0 Then
    Application.EnableEvents = True
    MsgBox "Sie können Daten löschen, aber keine Daten eingeben bei einer Merhfachselektion"
    Exit Sub
End If
With Target
    If .NumberFormat = "[hh]:mm" Then
        .NumberFormat = "General"
    End If
    If IsEmpty(.Value) Then
        Application.EnableEvents = True
        Exit Sub
    End If
    'Entfernen von Kommas aus einer Eingabe
    If InStr(1, .Value, ",") > 0 Then
        .Value = Application.WorksheetFunction.Replace(.Value, InStr(1, .Value, ","), 1, "")
    End If
    If IsNumeric(.Value) Then
        Select Case Len(.Value)
            Case 1
                .Value = "00:0" & .Value
            Case 2
                .Value = "00:" & .Value
            Case 3
                .Value = "0" & Left(.Value, 1) & ":" & Right(.Value, 2)
            Case 4
                .Value = Left(.Value, Len(.Value) - 2) & ":" & Right(.Value, 2)
            Case Else
                'Provisorisches Abfangen einer Zeiteingabe
                'Case 5 geht nicht, da bei Eingabe einer Uhrzeit
                'eine mehrstellige Nachkommazahl entstehen kann
                'Die einfache Prüfung, wenn oben alles durch ist,
                'lautet hier, ob der WErt numerisch ist...
                If IsNumeric(.Value) Then
                    Application.EnableEvents = True
                    Exit Sub
                End If
                '... wenn nicht löschen
                .Value = ""
                MsgBox "Unerlaubte Eingabe"
        End Select
    .NumberFormat = "[hh]:mm"
    End If
End With
Application.EnableEvents = True
End Sub
 
     Code eingefügt mit Syntaxhighlighter 1.16




Gruss Rainer
Anzeige
Offen: Zeitformatierung ohne ":" (VBA)?
07.12.2003 15:10:50
Benjamin
Hallo Rainer,

das klappt leider nicht, bei Eingabe von 1,20 wird im Anschluss 28:48 angezeigt!!

Das zweite Problem wäre der Bereich ('"Target.Column <> 7" = Eingabe nur in Spalte G erlaubt).
Der Bereich müsste jedoch die Bereiche I9:J39, O9:Q39, T9:Y39 und AA9:AA39 umfassen.

Hast Du noch eine Idee??

Danke und Gruss Benny
Natürlich klappt das... :-)
07.12.2003 15:26:28
Ramses
Hallo

Der Code ist getestet und das Ergebnis eines längeren Threads.

Hier die angepasste Datei zum Download.

https://www.herber.de/bbs/user/2352.xls

Gruss Rainer
Anzeige
AW: Natürlich klappt das... :-)
07.12.2003 15:49:18
Banjamin
Hallo Rainer,

sorry, das klappt natürlich bestens, lag wohl an meiner Zell-Formatierung :-).

Danke und Gruss Benny
Merci :-)) Geschlossen o.T.
07.12.2003 15:57:39
Ramses
...

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige