Utilisation texte d'un msobutton

Bonjour,

J'ai créer une commandbar avec des msobuttoncaption.

j'aimerais savoir s'il est possible d'utiliser une partie d'un nom de msobuttoncaption d'une barre de commande.

Par exemple, j'ai utilisé la propriété Caption="Insérer CA" dans la création de la commandbar et dans une autre macro, j'ai insérer le code suivant :

If ActiveCell.Value <> Right(CA1.Caption, 2) Then

J'ai bien entendu un message d'erreur 424 objet requis.

Donc est ce une erreur de syntaxe de ma part ou bien je fais fausse route et il est impossible de réaliser ma demande ?

D'avance merci pour la réponse à cette question qui me taraude.

Salut le forum

Il serait utile de nous dire ce que tu veux vraiment faire comme action.

Mytå

Dans ma commandbar, j'ai un menu avec plusieurs sous menu de 3 mso button.

Ces sous menus se présentent de la même manière avec : _Programmer XX;Annuler XX ; Imprimer XX ou XX sont respectivement CA, RC, Rcy, ASA etc....

Les actions concernant ces boutons sont quasiment identiques. Et au lieu de réécrire mon code en changeant les test suivant les valeurs des cellules (CA,RC etc...), j'aimerais utiliser certaines parties des captions des menus (partie droite sur deux caratères). comme variable pour adapter la macro .

Je joins un fichier test avec deux modules. Le premier ou il y a la création de la commanbar ainsi que la macro que j'utilise et que je veux faire varier suivant les termes CA, Rcy, RC etc...

21test.zip (11.89 Ko)

Re le forum

Regarde en utilisant la propriété .TAG (Code exemple du fonctionnement)

Sub CreationBarre()
    Dim cbBarre As CommandBar
    Dim CB_B1 As CommandBarButton, CB_B2 As CommandBarButton
    Dim CB_B3 As CommandBarButton

    Set cbBarre = CommandBars _
        .Add(Name:="Ma barre perso", Position:=msoBarTop, Temporary:=True)

    Set CB_B1 = cbBarre.Controls.Add(Type:=msoControlButton)
    With CB_B1
        .FaceId = 353
        .Tag = "Premier bouton"
        .OnAction = "TestMacro"
    End With

    Set CB_B2 = cbBarre.Controls.Add(Type:=msoControlButton)
    With CB_B2
        .FaceId = 351
        .Tag = "Deuxième bouton"
        .OnAction = "TestMacro"
    End With

    Set CB_B3 = cbBarre.Controls.Add(Type:=msoControlButton)
    With CB_B3
        .FaceId = 352
        .Tag = "Troisième bouton"
        .OnAction = "TestMacro"
    End With

    cbBarre.Visible = True
End Sub

Sub TestMacro()
    MsgBox CommandBars.ActionControl.Tag
End Sub

Mytå

Après plusieurs tentatives soldées par un échec ( il fallait que je sauvegarde et recharge mon fichier; suis je bête ), tout fonctionne comme je l'entend.

Un grand merci pour l'astuce !

Rechercher des sujets similaires à "utilisation texte msobutton"