Office-Fragen.de

Normale Version: wo liegt der Fehler
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Eingabe As Variant
On Error GoTo fehler1


If Not Intersect(Target, Range("c5:c35")) Is Nothing Then ' nur dieser Bereich
Target = UCase(Target)
End If








If Not Intersect(Target, Range("F37,F43,C5:E35")) Is Nothing Then
    Application.EnableEvents = False
    With Target
        If Not IsNumeric(.Value) Then GoTo fehler1
        If IsEmpty(Target) Then
            Target.Value = ""
            GoTo fehler1
        End If
        .Value = Left(Format(Target, "0000"), 2) & ":" & Right(Target, 2)
        ' funkt am besten
        ' Wenn Std über 24 und gleichzeit Minuten über 60 erfasst werden, wird Text zurückgegeben.
        .NumberFormat = "[h]:mm"
    End With
End If
If Not Intersect(Target, Range("f44")) Is Nothing Then
    Application.EnableEvents = False
    With Target
        If Not IsNumeric(.Value) Then GoTo fehler1
        If IsEmpty(Target) Then
            Target.Value = ""
            GoTo fehler1
        End If
        .Value = Left(Format(Target, "00000"), 3) & ":" & Right(Target, 2)
        ' funkt am besten
        ' Wenn Std über 24 und gleichzeit Minuten über 60 erfasst werden, wird Text zurückgegeben.
        .NumberFormat = "[h]:mm"
    End With
End If

fehler1:
Application.EnableEvents = True
End Sub



meine frage warum kann ich in c5:c35 keine Uhrzeiten mehr schreiben  ? wollte wenn ich was schribe es in Gross  wird
Zunächst die Begrüßung:
Hallo!
Magst Du die "Frage" mal mit Beispielen füllen?
Quasi so:
Ich gebe Rhabarber ein und erwarte RHABARBER.
Gebe ich 42 ein, erwarte ich …

Und für eine schließende Grußformel reicht es bei mir auch noch:

Ich freue mich auf die Beantwortung meines Inputs!
Gruß Ralf
Hallo
ja ich will in c eine Uhrzeit schreiben können oder in Wort wenn ich

If Not Intersect(Target, Range("c5:c35")) Is Nothing Then ' nur dieser Bereich
Target = UCase(Target)
End If

einfüge geht geht das mit dem gross schreiben aber keine uhrzeit mehr
mfg Thomas
Hallo Thomasius,

(Begrüßung, wie unter wohlerzogenen Menschen üblich)

1. wenn Du immer zur Fehlerroutine springst, wirst Du den Fehler nicht finden.
2. wenn Du einen Haltepunkt setzt, kannst Du die Befehle Schritt für Schritt, Zeile für Zeile durchgehen und sehen, was passiert.
3. wie willst Du Zahlen in Großbuchstaben umwandeln?
4. Was soll dieses Makro überhaupt machen?
Hallo Thomas,

(mit ius hab' ich's nicht so - ist mir zu katholisch)

Zitat:4. Was soll dieses Makro überhaupt machen?

Diese Frage stelle ich mir auch. Denn, dass man Ziffern nicht in Großbuchstaben umwandeln kann, dürfte wohl auch einem Grußlosen klar sein. Aber: Meinst Du überhaupt Großbuchstaben oder vielleicht etwa eine Formatierung wie z.B. Fett? Oder statt Uhrzeit einen Text wie "zu spät! zu spät!" (lässt sich übrigens prima mit dem Tritonus der RTW-/FW- und Bulleten-Sirenen melodisieren) ?

Lass wissen!

Schönen Amnd noch!
Guten Morgen
ich möchte in c5:c35 uhrzeiten schreiben
ich gebe 700 ein und erhalte 7:00 aber möchte auch in c5:c35 haus schreiben können und exel soll HAUS machen.
ist das möglich das beides geht ?
oder ich muss dann selber in grossbuchstaben schreiben
vielen dank
gruss Thomas
Hall Thomas,

wenn es nur darum geht reicht das:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C5:C35")) Is Nothing Then
        If IsNumeric(Target) Then
            If Len(Target) = 3 Then
                Target = CDate(Left(Target, 1) & ":" & Right(Target, 2))
            End If
        End If
    End If
End Sub


Gruß Uwe
hallo Uwe
danke erstmal dafür
das klappt leider nicht so wie ich es wollte.
in c muss uhrzeit oder ein wort stehen in d und e nur uhrzeiten.
oder ich habe was falsch gemacht ????
gruss Thomas
Hallo Thomas,
Zitat:ich möchte in c5:c35 uhrzeiten schreiben
ich gebe 700 ein und erhalte 7:00 aber möchte auch in c5:c35 haus schreiben können und exel soll HAUS machen.
darauf bezog sich mein Vorschlag.

Wenn du in Spalte d5:d35 und E5:E35 nur die Urzeit und C5:C35 Text +Uhrzeit haben willst, kann man auf Target.Column <>3 prüfen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C5:E35")) Is Nothing Then
        If IsNumeric(Target) Then
            If Len(Target) = 3 Then
                Target = CDate(Left(Target, 1) & ":" & Right(Target, 2))
            End If
        Else
            If Target.Column <> 3 Then Target = ""
        End If
    End If
End Sub

Gruß Uwe
vielen Dank
das klappt auch nicht so wie ich es mir vorstelle
bedanke mich bei allen
vieleicht habe ich die frage auch falsch gestellt wie und was ich wollte
Gruß Thomas
Seiten: 1 2