utiliser une macro dans une plage de cellule seulement

  • Initiateur de la discussion Initiateur de la discussion kinarius
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

kinarius

Guest
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
733
Réponses
5
Affichages
910
Retour