Aide sur une macro avec Private Sub Worksheet_Change(ByVal Target As Range)

verolyde

XLDnaute Nouveau
Bjr,

Sur une meme feuille, je voudrais mettre la macro suivante, mais elle ne marche pas :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$22" Then If Not (IsEmpty(Target.Value)) Then Range("F22").Value = Now Else Range("F22").ClearContents
If Target.Address = "$C$23" Then If Not (IsEmpty(Target.Value)) Then Range("F23").Value = Now Else Range("F23").ClearContents
If Target.Address = "$C$24" Then If Not (IsEmpty(Target.Value)) Then Range("F24").Value = Now Else Range("F24").ClearContents
If Target.Address = "$C$25" Then If Not (IsEmpty(Target.Value)) Then Range("F25").Value = Now Else Range("F25").ClearContents
If Not Intersect([planning], Target) Is Nothing Then

For i = 1 To [couleurs].Count
lg = Len(Sheets("couleurs").Range("couleurs")(i))
If UCase(Left(Target.Value, lg)) = UCase(Sheets("couleurs").Range("couleurs")(i)) Then
temp = Sheets("couleurs").Range("couleurs")(i).Interior.ColorIndex
Target.Interior.ColorIndex = temp
Exit For
End If
Next i
End I

Pourriez vous dire où est le pb ?

Merci d'avance :)

verolyde
 

JCGL

XLDnaute Barbatruc
Re : Aide sur une macro avec Private Sub Worksheet_Change(ByVal Target As Range)

Bonjour à tous,

Peux-tu essayer ceci :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$C$22" Then
        If Not (IsEmpty(Target.Value)) Then Range("F22").Value = Now
    Else: Range("F22").ClearContents
    End If

    If Target.Address = "$C$23" Then
        If Not (IsEmpty(Target.Value)) Then Range("F23").Value = Now
    Else: Range("F23").ClearContents
    End If

    If Target.Address = "$C$24" Then
        If Not (IsEmpty(Target.Value)) Then Range("F24").Value = Now
    Else: Range("F24").ClearContents
    End If

    If Target.Address = "$C$25" Then
        If Not (IsEmpty(Target.Value)) Then Range("F25").Value = Now
    Else: Range("F25").ClearContents
    End If

    If Not Intersect([planning], Target) Is Nothing Then
        For i = 1 To [Couleurs].Count
            lg = Len(Sheets("Couleurs").Range("Couleurs")(i))
            If UCase(Left(Target.Value, lg)) = UCase(Sheets("Couleurs").Range("Couleurs")(i)) Then
                Temp = Sheets("Couleurs").Range("Couleurs")(i).Interior.ColorIndex
                Target.Interior.ColorIndex = Temp
            End If
        Next i
    End If
End Sub

A + à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 140
Membres
103 129
dernier inscrit
Atruc81500