Modification code VBA

Résolu/Fermé
Coco-8 Messages postés 92 Date d'inscription lundi 27 février 2017 Statut Membre Dernière intervention 16 juillet 2019 - 24 avril 2017 à 08:56
Coco-8 Messages postés 92 Date d'inscription lundi 27 février 2017 Statut Membre Dernière intervention 16 juillet 2019 - 24 avril 2017 à 09:29
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 :)
A voir également:

3 réponses

Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
24 avril 2017 à 09:03
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 lundi 27 février 2017 Statut Membre Dernière intervention 16 juillet 2019 2
24 avril 2017 à 09:05
Parfait merci :)
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
Modifié le 24 avril 2017 à 09:13
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 lundi 27 février 2017 Statut Membre Dernière intervention 16 juillet 2019 2
24 avril 2017 à 09:14
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 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
Modifié le 24 avril 2017 à 09:28
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 lundi 27 février 2017 Statut Membre Dernière intervention 16 juillet 2019 2
24 avril 2017 à 09:29
Ok ça marche, merci
0