Modification code VBA

Résolu
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

  1. 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
    1. Parfait merci :)
      0
  2. 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
    1. 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
  3. 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
    1. Ok ça marche, merci
      0