utiliser une macro dans une plage de cellule seulement

kinarius

XLDnaute Nouveau
Bonjour,
je souhaite utiliser une macro seulement dans une plage de cellule sans utiliser for each car trop long. des que l'on valide la celulle il y en a pour 10s à chaque fois.

Je cherche à dire:
si la cellule active est dans la plage de celulle (G5:AC40) alors
....
....

If activecell.range("G5:AC40") then


merci d'avance

Public Sub couleur()

If ActiveCell.Offset(-1, 0).Value = "3" Then
ActiveCell.Offset(-1, 0).Interior.ColorIndex = 4
ActiveCell.Offset(-1, 0).Font.ColorIndex = 4
End If

If ActiveCell.Offset(-1, 0).Value = "2" Then
ActiveCell.Offset(-1, 0).Interior.ColorIndex = 6
ActiveCell.Offset(-1, 0).Font.ColorIndex = 6
End If

If ActiveCell.Offset(-1, 0).Value = "1" Then
ActiveCell.Offset(-1, 0).Interior.ColorIndex = 45
ActiveCell.Offset(-1, 0).Font.ColorIndex = 45
End If

If ActiveCell.Offset(-1, 0).Value = "0" Then
ActiveCell.Offset(-1, 0).Interior.ColorIndex = 3
ActiveCell.Offset(-1, 0).Font.ColorIndex = 3
End If

If ActiveCell.Value = "" Then
ActiveCell.Interior.ColorIndex = xlNone
End If

End Sub
 

Creepy

XLDnaute Accro
Re : utiliser une macro dans une plage de cellule seulement

Bonjour le Forum, Wilfried, Kinarius,

Ci joint un code complet sur l'évenement worksheet_change vec le intersect de Wilfried

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Couleur As Integer ' declaration d'une varaible
If Not Intersect(Target, Range("G5:AC40")) Is Nothing Then ' reprise de wilfried pour savoir
' si cellule source coimprise dans la plage
   
    Select Case Target.Offset(-1, 0).Value ' Selon la valeur de la cellule du dessus
    Case "3" ' si 3 on donne 4 a couleur
        Couleur = 4
    Case "2" ' etc...
        Couleur = 6
    Case "1"
        Couleur = 45
    Case "0"
        Couleur = 3
    End Select
    With Target.Offset(-1, 0) 'pour la cellule du dessus
        .Interior.ColorIndex = Couleur ' on met la couleur
        .Font.ColorIndex = Couleur
    End With
   
    If Target.Value = "" Then ' ca tu connais c'est ton code
        Target.Interior.ColorIndex = xlNone
    End If
End Sub

A+

Creepy
 

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet