Modification code VBA

Résolu
Coco-8 Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -  
Coco-8 Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici mon code actuel qui me permet, au simple clic d'une cellule, de lui faire prendre la valeur 1 et la couleur rouge.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("F9:M28")) Is Nothing Then
Select Case Target
Case Is = 0: Target.Value = 1: Target.Interior.ColorIndex = 3
Case Is = 1: Target.ClearContents: Target.Interior.ColorIndex = 0
End Select
End If
End Sub

Ce code fonctionne pour les cellule de la plage F9:M28 et j'aimerais le modifier pour affecter les plages F11:H30 et M11:P30

Merci de votre aide :)

3 réponses

Mike-31 Messages postés 18406 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Bonjour,

comme cela

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Union([F9:M28], [F11:H30], [M11:P30])) Is Nothing Then
Select Case Target
Case Is = 0: Target.Value = 1: Target.Interior.ColorIndex = 3
Case Is = 1: Target.ClearContents: Target.Interior.ColorIndex = 0
End Select
End If
End Sub
1
Coco-8 Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   2
 
Parfait merci :)
0
Mike-31 Messages postés 18406 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

perso j'ajouterais une gestion d'erreur et éviterais de superposer les plages

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Union([F9:M28], [F29:H30], [M29:M30], [N11:P30])) Is Nothing Then
Select Case Target
Case Is = 0: Target.Value = 1: Target.Interior.ColorIndex = 3
Case Is = 1: Target.ClearContents: Target.Interior.ColorIndex = xlNone
End Select
End If
End Sub

A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0
Coco-8 Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   2
 
J'ai pas précisé dans me demande que mes deux nouvelles plages remplaceraient l'ancienne donc il peut pas y avoir de problème de superposition. J'ai simplement supprimé [F9:M28] dans ton code et il fonctionne comme je le souhaite :)
0
Mike-31 Messages postés 18406 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

en début de code ajoute cette gestion d'erreur pour éviter le plantage du code dans le cas de sélection accidentelle de deux cellules par exemple etc

On Error Resume Next
A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0
Coco-8 Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   2
 
Ok ça marche, merci
0