Mise en forme dans menu contextuel

ludozebest

XLDnaute Nouveau
Bonjour,

Dans un fichier, j'ai le code suivant afin d'ajouter l'execution d'une macro à partir du menu contextuel d'excel :

Code:
With Application.CommandBars("Cell").Controls.Add(msoControlButton)
    .Caption = "Appel à annuler"
    .BeginGroup = True
    .OnAction = "Macro"
   End With

J'ai deux questions :
1. Est-il possible d'ajouter une icone autre qu'un faceid
2. Est-il possible de modifier la couleur/ le fond des caractères pour "Appel à annuler"

Merci pour vos réponses,

LL
 

kiki29

XLDnaute Barbatruc
Re : Mise en forme dans menu contextuel

Salut,pour 2 je pense que non, pour 1 si une image a été chargée dans feuil1 et qu'elle s"appelle Picture 850 par exemple
Code:
With Application.CommandBars("Cell").Controls.Add(msoControlButton)
    .Caption = "Appel à annuler"
    .BeginGroup = True
    .OnAction = "Macro"
    Feuil1.Shapes("Picture 850").Copy
    .PasteFace
End With
 
Dernière édition:

ludozebest

XLDnaute Nouveau
Re : Mise en forme dans menu contextuel

Merci pour ta réponse kiki,
Ca donne l'effet que j'espérais.

Cependant, il y a un petit hic :

Lorsque je travaille sur la feuille excel, j'ai l'impression qu'il garde l'image "Picture 850" en mémoire et dès que je veux faire un copier-coller, il colle l'image là où je veux veux faire un collage... :confused:.

Y-a-t'il un moyen de résoudre ce pb ?

LL
 

Pierrot93

XLDnaute Barbatruc
Re : Mise en forme dans menu contextuel

Re,

Remarque on peut vider le presse papier après le collage de l'image... modifie ainsi :

Code:
'activer la reference Microsoft Forms 2.0 Object Library
Dim x As New DataObject
With Application.CommandBars("Cell").Controls.Add(msoControlButton)
    .Caption = "Appel à annuler"
    .BeginGroup = True
    .OnAction = "Macro"
    Feuil1.Shapes("Picture 850").Copy
    .PasteFace
End With
x.SetText ""
x.PutInClipboard

n'oublie pas d'activer la référence Microsoft Forms 2.0 Object Library. Dans l'éditeur vba => barre de menu => outils => références
 

ludozebest

XLDnaute Nouveau
Re : Mise en forme dans menu contextuel

Merci pierrot pour tes indications.;)

Et effectivement, lorsque je fais un "copier" avant le "coller" ça marche normallement.
C'est juste lorsque je fesais un coller directement après le lancement de la macro qu'il me recollait l'image...:D
 

kiki29

XLDnaute Barbatruc
Re : Mise en forme dans menu contextuel

Salut,Effectivement il y a ce probleme, une autre approche pour effacer le clipboard
Ajouter dans un module
Code:
Option Explicit

Public Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function EmptyClipboard Lib "user32" () As Long
Public Declare Function CloseClipboard Lib "user32" () As Long
 
Sub EffacerPP()
    OpenClipboard (0&)
    EmptyClipboard
    CloseClipboard
End Sub

Code:
With Application.CommandBars("Cell").Controls.Add(msoControlButton)
    .Caption = "Appel à annuler"
    .BeginGroup = True
    .OnAction = "Macro"
    Feuil1.Shapes("Picture 850").Copy
    .PasteFace
End With
EffacerPP
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 248
Messages
2 086 593
Membres
103 248
dernier inscrit
Happycat