Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Double clique simple clic rectangle

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 !

mathjr74

XLDnaute Nouveau
Bonjour,

Je dispose d'une feuille sur laquelle j'ai 6 rectangles cliquables. Lorsque je clique sur l'un d'entres eux il change de couleur et se "remplit". J'ai juste un petit soucis lorsque je clique sur un rectangle de la Partie 1 et que je clique directement sur un rectangle étant dans la partie 2 ou inversement, certaines fois je dois double cliquer au lieu de faire un simple clique. Est ce que quelqu'un pourrait il m'aider à changer la macro pour ne faire qu'un simple clique à chaque fois svp.

En vous remerciant.
 

Pièces jointes

Bonsoir mathjr74,

Pas essayé de comprendre pourquoi vous utilisez une macro si compliquée, essayez plutôt :
VB:
Sub RAPP_MWE_Rect_Colour()
Dim lig&, col%, s As Shape
With ActiveSheet.Shapes(Application.Caller)
    lig = .TopLeftCell.Row
    col = .TopLeftCell.Column
    For Each s In ActiveSheet.Shapes
        If s.TopLeftCell.Row = lig Then If s.TopLeftCell.Column <> col Then s.Fill.ForeColor.RGB = vbWhite 'RAZ
    Next
    Select Case Right(.TextFrame.Characters.Text, 1)
        Case 1: .Fill.ForeColor.RGB = IIf(.Fill.ForeColor.RGB = vbWhite, RGB(0, 166, 81), vbWhite)
        Case 2: .Fill.ForeColor.RGB = IIf(.Fill.ForeColor.RGB = vbWhite, RGB(250, 166, 26), vbWhite)
        Case 3: .Fill.ForeColor.RGB = IIf(.Fill.ForeColor.RGB = vbWhite, RGB(237, 29, 36), vbWhite)
    End Select
End With
End Sub
A+
 

Pièces jointes

Dernière édition:
Bonjour le forum,

Si les noms des Shapes sont toujours numérotés avec un pas de 3 par ligne utiliser ce fichier (2) :
VB:
Sub RAPP_MWE_Rect_Colour()
Dim lig&, col%, s As Shape, n As Byte
With ActiveSheet.Shapes(Application.Caller)
    lig = .TopLeftCell.Row
    col = .TopLeftCell.Column
    For Each s In ActiveSheet.Shapes
        If s.TopLeftCell.Row = lig Then If s.TopLeftCell.Column <> col Then s.Fill.ForeColor.RGB = vbWhite 'RAZ
    Next
    n = (Val(Replace(.Name, "RAPP_MWE_Rect", "")) - 1) Mod 3 '0 ou 1 ou 2
    .Fill.ForeColor.RGB = IIf(.Fill.ForeColor.RGB = vbWhite, Array(RGB(0, 166, 81), RGB(250, 166, 26), RGB(237, 29, 36))(n), vbWhite)
End With
End Sub
A+
 

Pièces jointes

- 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

Discussions similaires

T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
617
Themax
T
  • Question Question
Réponses
5
Affichages
822
Réponses
2
Affichages
479
Réponses
14
Affichages
637
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…