Changer la couleur des cellules active - Macro avec début & fin

Bonjour à tous,

Après plusieurs recherches, (qui m'ont déjà permis de faire le bout de code que j'ai là), je n'arrive pas à aller plus loin. Voici le code que j'ai :

Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim Coul As Byte

  If Target.Count > 1 Then Exit Sub
  Select Case Target.Interior.ColorIndex
    Case 4
      Coul = 3
    Case 3
      Coul = 4

  End Select
  Target.Interior.ColorIndex = Coul

End Sub

Le souci de ce code est qu'il n'est possible de l'utiliser que sur un module "Feuille", et donc impossible de le lancer à un moment précis, ni de l'arrêter...

J'aimerais faire exactement la même chose (c'est à dire quand je clique sur une cellule verte elle devient rouge et vice versa), mais lancer cette macro en appuyant sur un bouton, et l'arrêter en l'appuyant sur un autre...

En vous remerciant pour votre aide, je vous souhaite à tous de bonne fête

Bonjour,

Pour le principe (!?).

Cdlt.

13adrien2a.xlsm (21.44 Ko)
Public Sub GetColor()
    With ActiveCell
        Select Case .Interior.Color
            Case 255: .Interior.Color = 5296274
            Case 5296274: .Interior.Color = 255
            Case Else:
        End Select
    End With
End Sub

Bonjour Jean-Eric,

J'ai essayé ton code tel quel, mais aussi en le changeant un peu mais je n'ai pas l'impression que ça marche

Je te montre ce que j'ai fait :

Public Sub GetColor()
    With ActiveCell
        Select Case ActiveCell.Interior.Color
            Case 3: ActiveCell.Interior.ColorIndex = 4
            Case 4: ActiveCell.Interior.ColorIndex = 3
            Case Else:
        End Select
    End With
End Sub

Re,

Et comme ceci :

Public Sub GetColor()
    With ActiveCell
        Select Case .Interior.ColorIndex
            Case 3: .Interior.ColorIndex = 4
            Case 4: .Interior.ColorIndex = 3
            Case Else:
        End Select
    End With
End Sub

Re,

Oui en effet la comme ça, ça marche ! Merci beaucoup.b

Et est-ce que tu sais s'il y a un moyen de l'automatiser ? C'est à dire en lançant la macro, pour qu'à chaque fois que l'on sélectionne une nouvelle case, celle-ci change de couleur ?

J'ai essayer ainsi, mais ça ne marche pas. Après j'ai peur de ne pas bien maitriser les boucles while

Public Sub GetColor1()
Dimension = InputBox("Quelle dimension de matrice souhaitez-vous ? (La dimension doit être comprise entre 20 et 50)") 'SUPPRIMER
Defectionnaires = InputBox("Combien voulez-vous qu'il y ait de rouge ?")
MsgBox ("Cliquer alors sur les emplacements en vert que vous souhaitez voir devenir rouge.")

    While NbreCellulesCouleur(ActiveSheet.Range(Cells(2, 5), Cells(Dimension + 1, Dimension + 4)), 3) < Defectionnaires
    With ActiveCell
        Select Case .Interior.Color
            Case 3: .Interior.Color = 4
            Case 4: .Interior.Color = 3
            Case Else:
        End Select
    End With
    Wend

End Sub
Rechercher des sujets similaires à "changer couleur active macro debut fin"