XL 2010 CommandBar personnalisée : actions lancées deux fois au lieu d'une

  • Initiateur de la discussion Initiateur de la discussion luigiF
  • Date de début Date de début

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 !

luigiF

XLDnaute Junior
Salut à vous,
Dans l'exemple ci-joint, je crée une barre personnalisée qui permet de colorier les cellules sélectionnées.
La barre est créée lors de l'activation de la feuille 1.
Quelqu'un pourrait-il m'expliquer pourquoi l'action associée aux boutons dans ma barre est lancée deux fois et non une seule fois ?
Merci pour vos réponses.
Cordialement,
LuigiF

VB:
Option Explicit
Sub AfficheBarreCouleur()
    Dim c As Range
    Dim Barre As CommandBar
    On Error Resume Next
    CommandBars("MaBarre").Delete
    On Error GoTo 0
    
    Set Barre = Application.CommandBars.Add("MaBarre", , , 1)
    For Each c In Feuil1.Range("Couleurs")
        c.CopyPicture
        With Barre.Controls.Add(msoControlButton, , , , True)
            .PasteFace
            .Caption = c.Offset(, 1).Value
            .OnAction = "Couleur(" & c.Row & ")"
        End With
    Next c
    Barre.Visible = True
End Sub

Sub couleur(i As Integer)
    With Selection
        .Interior.Color = Feuil1.Range("Couleurs").Cells(i).Interior.Color
        .Value = .Value & Feuil1.Range("Couleurs").Cells(i).Offset(, 2)
    End With
End Sub
 

Pièces jointes

Bonjour.
Là, la macro ne semble pas du tout exécutée (ou alors en tant que fonction, dont je ne sais ce qu'il fait de la valeur renvoyée, et qui ne renvoie rien, là, de toute façon).
Essayez :
VB:
            .OnAction = "'Couleur " & c.Row & "'"
 
Je me réponds après avoir trouvé l'origine du problème, au cas où cela servirait à quelqu'un ...
J'ai résolu le problème en ajoutant des simples quote dans la ligne suivante :

VB:
.OnAction = "Couleur(" & c.Row & ")"
remplacé par
.OnAction = "'Couleur(" & c.Row & ")'"

Le problème est donc résolu ... mais je ne suis pas certain que cela fonctionne sur toutes les versions d'Excel et dans toutes les langues.
Si quelqu'un a une autre solution, je suis preneur.
Cordialement
LuigiF
 
- 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

Réponses
2
Affichages
405
Réponses
0
Affichages
379
Retour