Microsoft Excel

Herbers Excel/VBA-Archiv

Uhrzeit mit komma | Herbers Excel-Forum


Betrifft: Uhrzeit mit komma von: Ralf
Geschrieben am: 29.12.2009 17:52:05

Hallo
Hatte gestern schon mal danach gefragt und zwar möchte ich gerne wenn ich 8,15 in eine zelle eingebe das dann dort 8:15 steht habe auch reichlich antworten gefunden
es geht natürlich mit autokorrektur aber mir würde die Lösung von Hajo am besten gefallen nur das problem ist jetzt nur hajo sein mako bedeutet 1630 = 16:30 ich möchte gerne16,30 = 16:30 uhrzeit aber ich habe keinen blassen schimmer was ich da im Makro ändern muß und ob das überhaupt geht vielleich kann mir von euch einer helfen

mit besten grüßen ralf

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'   Erstellt von Hajo.Ziplies@web.de am 28.12.02
    Dim RaBereich As Range, RaZelle As Range
    Dim InS As Integer
    Dim InM As Integer
    ' Bereich der Wirksamkeit
    Set RaBereich = Range("B3:C20, D1:D7")
'    ActiveSheet.Unprotect
    Application.EnableEvents = False
    For Each RaZelle In Range(Target.Address)
        If Not Intersect(RaZelle, RaBereich) Is Nothing Then
            With RaZelle
                If .Value <> "" Then
                    If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
                        InStr(.Value, ",") = 0 Then
                        .NumberFormat = "[hh]:mm"
                        If Len(Target.Value) > 2 Then
                            InS = Left(.Value, Len(.Value) - 2)
                            InM = Right(.Value, 2)
                        Else
'                            Stunden haben das Primat
'                             InS = .Value
'                             InM = 0
'                            Minuten haben das Primat
                            InS = 0
                            InM = .Value
                        End If
                        .Value = InS & ":" & InM
                    End If
                End If
            End With
        End If
    Next RaZelle
'    ActiveSheet.protect
    Application.EnableEvents = True
End Sub

  

Betrifft: AW: Uhrzeit mit komma von: hary
Geschrieben am: 29.12.2009 18:14:10

Hallo ralf
teste mal. Habe zeichen = in > gewechselt.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'   Erstellt von Hajo.Ziplies@web.de am 28.12.02
    Dim RaBereich As Range, RaZelle As Range
    Dim InS As Integer
    Dim InM As Integer
    ' Bereich der Wirksamkeit
    Set RaBereich = Range("B3:C20, D1:D7")
'    ActiveSheet.Unprotect
    Application.EnableEvents = False
    For Each RaZelle In Range(Target.Address)
        If Not Intersect(RaZelle, RaBereich) Is Nothing Then
            With RaZelle
                If .Value <> "" Then
                    If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
                        InStr(.Value, ",") > 0 Then  'hier geaendert
                        .NumberFormat = "[hh]:mm"
                        If Len(Target.Value) > 2 Then
                            InS = Left(.Value, Len(.Value) - 2)
                            InM = Right(.Value, 2)
                        Else
'                            Stunden haben das Primat
'                             InS = .Value
'                             InM = 0
'                            Minuten haben das Primat
                            InS = 0
                            InM = .Value
                        End If
                        .Value = InS & ":" & InM
                    End If
                End If
            End With
        End If
    Next RaZelle
'    ActiveSheet.protect
    Application.EnableEvents = True
End Sub

gruss hary


  

Betrifft: AW: Uhrzeit mit komma von: Ralf
Geschrieben am: 29.12.2009 18:21:28

Jau das passt aber mir ist aufgefallen, das man wohl 16,15 = 16:15 eingeben kann nur bei 17,30 = 17:00 woran kann das liegen

gruß Ralf


  

Betrifft: AW: Uhrzeit mit komma von: tommy
Geschrieben am: 29.12.2009 19:05:31

Tipp:

mach in der Gleichung =1 statt größer 0

Gruß!


  

Betrifft: AW: Uhrzeit mit komma von: Hajo_Zi
Geschrieben am: 29.12.2009 19:58:12

Hallo Ralf,

in einen Forum sollte man mit einer Frage keine Person persölkich anreden, ein Hinwis vom wem der Code wäre nicht schlecht im Betreff. Ich wurde jetzt erst drauf hingewiesen.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    '**************************************************
    '* H. Ziplies                                     *
    '* 29.12.09                                       *
    '* erstellt von HajoZiplies@WEB.de                *
'* http://Hajo-Excel.de
 *
    '**************************************************
    Dim RaBereich As Range, RaZelle As Range
    Dim InS As Integer
    Dim InM As Integer
    ' Bereich der Wirksamkeit
    Set RaBereich = Range("B3:C20, D1:D7")
    'ActiveSheet.Unprotect
    Application.EnableEvents = False
    Set RaBereich = Intersect(RaBereich, Range(Target.Address))
    If Not RaBereich Is Nothing Then
        For Each RaZelle In Range(Target.Address)
            With RaZelle
                If .Value <> "" Then
                    If IsNumeric(.Value) And InStr(.Value, ":") = 0 Then
                        .NumberFormat = "[hh]:mm"
                        If InStr(RaZelle, ",") > 0 Then
                            InS = Left(RaZelle, InStr(RaZelle, ",") - 1)
                            InM = Mid(RaZelle, InStr(RaZelle, ",") + 1)
                        Else
                            InS = RaZelle
                        End If
                        .Value = InS & ":" & InM
                    End If
                End If
            End With
        Next RaZelle
    End If
    'ActiveSheet.protect
    Application.EnableEvents = True
    Set RaBereich = Nothing
End Sub

GrußformelHomepage


  

Betrifft: AW: Uhrzeit mit komma von: BoskoBiati
Geschrieben am: 29.12.2009 20:49:06

Hallo Hajo,

Dein Makro bringt einen Fehler, wenn man Uhrzeiten mit vollen 10Minuten eingibt. aus z.B 16,30 wird 16:03. Hier mal eine Änderung (beruhend auf dem alten Code):

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    '   Erstellt von Hajo.Ziplies@web.de am 28.12.02
        Dim RaBereich As Range, RaZelle As Range
        Dim InS As Integer
        Dim InM As Integer
        ' Bereich der Wirksamkeit
        Set RaBereich = Range("B3:C20, D1:D7")
    '    ActiveSheet.Unprotect
        Application.EnableEvents = False
        For Each RaZelle In Range(Target.Address)
            If Not Intersect(RaZelle, RaBereich) Is Nothing Then
                With RaZelle
                    If .Value <> "" Then
                        If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
                            InStr(.Value, ",") <> 0 Then
                            
                            If Len(Target.Value) > 2 Then
                                InS = Left(.Value, Len(.Value) - 2)
                                InM = Mid(.Value, InStr(1, .Value, ",") + 1, Len(.Value) - Len( _
InS) - 1)
                                If Len(Trim(InM)) < 2 Then InM = InM * 10
                            Else
    '                            Stunden haben das Primat
                                 InS = .Value
                                 InM = 0
    '                            Minuten haben das Primat
    '                            InS = 0
    '                            InM = .Value
                            End If
                            .NumberFormat = "[hh]:mm"
                            .Value = InS & ":" & InM
                        End If
                    End If
                End With
            End If
        Next RaZelle
    '    ActiveSheet.protect
        Application.EnableEvents = True
    End Sub
Gruß

Bosko


  

Betrifft: AW: Uhrzeit mit komma von: Hajo_Zi
Geschrieben am: 29.12.2009 21:00:27

Hallo Bosko,

ich habe den alten Code angepast.

  • Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        '**************************************************
        '* H. Ziplies                                     *
        '* 29.12.09                                       *
        '* erstellt von HajoZiplies@WEB.de                *
    '* http://Hajo-Excel.de
     *
        '**************************************************
        Dim RaBereich As Range, RaZelle As Range
        Dim InS As Integer
        Dim InM As Integer
        ' Bereich der Wirksamkeit
        Set RaBereich = Range("B3:C20, D1:D7")
        'ActiveSheet.Unprotect
        Application.EnableEvents = False
        Set RaBereich = Intersect(RaBereich, Range(Target.Address))
        If Not RaBereich Is Nothing Then
            For Each RaZelle In Range(Target.Address)
                With RaZelle
                    If .Value <> "" Then
                        If IsNumeric(.Value) And InStr(.Value, ":") = 0 Then
                            .NumberFormat = "[hh]:mm"
                            If InStr(RaZelle, ",") > 0 Then
                                InS = Left(RaZelle, InStr(RaZelle, ",") - 1)
                                InM = Left(Mid(RaZelle & "0", InStr(RaZelle, ",") + 1), 2)
                            Else
                                InS = RaZelle
                            End If
                            .Value = InS & ":" & InM
                        End If
                    End If
                End With
            Next RaZelle
        End If
        'ActiveSheet.protect
        Application.EnableEvents = True
        Set RaBereich = Nothing
    End Sub



  • Gruß Hajo


      

    Betrifft: AW: Danke von: hary
    Geschrieben am: 30.12.2009 08:15:19

    Moin Ihr Beiden
    Jetzt wo ich's sehe. So in etwa hatte ich es auch, hatte nur ein paar entscheidene Buchstaben nicht eingebaut ;-(
    Gruss hary


      

    Betrifft: AW: Danke von: Ralf
    Geschrieben am: 30.12.2009 08:40:50

    Hallo
    und danke für eure Antworten und anregungen in sachen forumverhalten

    Mit besten grüßen ralf


    Beiträge aus den Excel-Beispielen zum Thema "Uhrzeit mit komma"