Microsoft Excel

Herbers Excel/VBA-Archiv

Für Hajo

    Betrifft: Für Hajo von: Daniel
    Geschrieben am: 01.10.2003 17:07:16

    Hallo Hajo,
    ich habe ein Code von dir in meine Tabelle angepasst und funkt prima. Allerdings, wenn ich die Tabelle schutze kommt zum Error (Die Number-Format-Eigenschasft des Range-Objektes kann nicht festgelegt werden).
    Warum?
    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("e7:F37, h7:i37")
    '    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"  <--- hier ist der Error
                            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
    




    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
        Dim Bereich As Range
        Dim Z
    '   Bereich der Wirksamkeit
        Set Bereich = Range("E7:I37")
        If Intersect(Target, Bereich) Is Nothing Then Exit Sub  ' Abbruch, wenn Aktion nicht im Zielbereich
        Cancel = True
        ActiveCell.Select
        Selection.ClearContents
    End Sub
    


    Du hast mir in vielen fällen sehr geholfen.
    Kannst du dir mein Beitrag von heute anschauen.
    Habe bis jezt keine Lösung gefunden.

    http://xlforum.herber.de/messages/317639.html


    Ich danke dir im Voraus.
    Ciao
    Daniel
      


    Betrifft: AW: Uhrzeiteingabe von: Hajo_Zi
    Geschrieben am: 01.10.2003 17:15:13

    Hallo Daniel

    es sollte keiner im Forum persönlich mit einer Frage angesprochen werden, das könnte andere davon abhalten zu Antworten. Der Betreffs sollte schon das Problem wiederspiegeln.

    es ist im Code schon drin, Du hast nur nicht den Kommentar entfernt
    ' ActiveSheet.Unprotect
    ' ActiveSheet.protect


    der zweite Code ist nicht von mir. Auf Select, Activate usw. kann zu 99% verzichtetet werden.

    ActiveCell=""
    Grußformel

    Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
    Bitte kein Mail, Probleme sollen im Forum gelöst werden.

    Microsoft MVP für Excel

    Das Forum lebt auch von den Rückmeldungen.

    http://home.media-n.de/ziplies/



      


    Betrifft: AW: Uhrzeiteingabe von: Daniel
    Geschrieben am: 01.10.2003 18:14:41

    Danke,Hajo
    Grüß Daniel.