Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Excel 2010] PasteFace

3 réponses
Avatar
Péhemme
Bonjour à Tous,

Je viens d'installer Office2010.
Je recopie dans le Personnal.xlsb une macro qui me permettait, à l'ouverture
d'Excel2003, de créer un menu me donnant accès à, principalement, des outils
de présentation de feuille.
Dans ce menu, j'avais des boutons avec icones personnalisées.
Au sein de cette macro de création de menu j'ai, entre autres à titre
d'exemple, l'opération suivante.

Set BtnPop = .Controls.Add(msoControlPopup)
With BtnPop
.BeginGroup = True
.Caption = "Hauteur Ligne..."
Set Btn = .Controls.Add(msoControlButton)
Worksheets("Feuil1").Shapes("Image 1").Copy 'Copie l'icone
personnalisée
With Btn
.BeginGroup = True
.Style = msoButtonIconAndCaption
.Caption = "Hauteur : 5"
.OnAction = "Hauteur_5"
.PasteFace
End With
Set Btn = .Controls.Add(msoControlButton)
Worksheets("Feuil1").Shapes("Image 2").Copy 'Copie l'icone
personnalisée
With Btn
.Style = msoButtonIconAndCaption
.Caption = "Hauteur : 16"
.OnAction = "Hauteur_16"
.PasteFace
End With
End With

L'opération de copie de l'image (.PasteFace) bloque sous Excel2010.
Je n'ai pas trouvé (ou pas su trouver) dans l'aide les codes de
remplacement.
Qu'est-ce que je fais de mal ?
Par quoi cette instruction doit-elle être remplacée ?

Toutes solutions et/ou mises sur la voie seront appréciées.
Bien cordialement
Michel

3 réponses

Avatar
Péhemme
Je me complète.
Si j'utilise la réponse que m'avait faite Denis lorsque j'ai posté sur ce
forum, il y a quelques années, la même question concernant Excel2007
(problème abandonné entre temps suite aux conseils de Misange qui me
précisait que "cela sera *plus facile* sous 2010") :
Sub test()
Dim Mbar As CommandBar
Dim Btn As CommandBarButton
On Error Resume Next
Application.CommandBars("Denis").Delete
Set Mbar = Application.CommandBars.Add("Denis")
With Mbar
.Visible = True
Set Btn = .Controls.Add(msoControlButton)
With ThisWorkbook
.Worksheets("Feuil1").Shapes("Picture 2").Copy
With Btn
.Style = msoButtonIconAndCaption
.Caption = "Hauteur : 16"
'.OnAction = "Hauteur_16"
.PasteFace
End With
End With
End With
End Sub
j'obtiens, dans le ruban, dans l'onglet complément créé automatiquement, une
"rubrique : Barres d'outils personnalisées", le bouton *avec* la copie de
l'icone.
Si je lance ma macro qui crée "un menu" (en Excel2003) j'obtiens, toujours
dans mon onglet complément une rubrique intitulée "Commandes de menu" mais
la macro bloque au niveau du premier : .PasteFace...
Va comprendre !?
Mes fichiers de tests sont bien en .xlsm
Quelque chose m'échappe !
Mais quoi ?
Merci de vos recommandations.
Michel



"Péhemme" a écrit dans le message de
news:4ed26069$0$2519$
Bonjour à Tous,

Je viens d'installer Office2010.
Je recopie dans le Personnal.xlsb une macro qui me permettait, à
l'ouverture d'Excel2003, de créer un menu me donnant accès à,
principalement, des outils de présentation de feuille.
Dans ce menu, j'avais des boutons avec icones personnalisées.
Au sein de cette macro de création de menu j'ai, entre autres à titre
d'exemple, l'opération suivante.

Set BtnPop = .Controls.Add(msoControlPopup)
With BtnPop
.BeginGroup = True
.Caption = "Hauteur Ligne..."
Set Btn = .Controls.Add(msoControlButton)
Worksheets("Feuil1").Shapes("Image 1").Copy 'Copie l'icone
personnalisée
With Btn
.BeginGroup = True
.Style = msoButtonIconAndCaption
.Caption = "Hauteur : 5"
.OnAction = "Hauteur_5"
.PasteFace
End With
Set Btn = .Controls.Add(msoControlButton)
Worksheets("Feuil1").Shapes("Image 2").Copy 'Copie l'icone
personnalisée
With Btn
.Style = msoButtonIconAndCaption
.Caption = "Hauteur : 16"
.OnAction = "Hauteur_16"
.PasteFace
End With
End With

L'opération de copie de l'image (.PasteFace) bloque sous Excel2010.
Je n'ai pas trouvé (ou pas su trouver) dans l'aide les codes de
remplacement.
Qu'est-ce que je fais de mal ?
Par quoi cette instruction doit-elle être remplacée ?

Toutes solutions et/ou mises sur la voie seront appréciées.
Bien cordialement
Michel



Avatar
MichD
Bonjour,

Voici un exemple, tu devras adapter le nom des objets...

Ça fonctionne très bien!

'-----------------------------------------
Sub test()

On Error Resume Next
Application.CommandBars("MichD").Delete
Application.CommandBars.Add "MichD"

With Application.CommandBars("MichD")
.Visible = True
With .Controls.Add(msoControlPopup)
.BeginGroup = True
.Caption = "Hauteur Ligne..."
With .Controls.Add
.Style = msoButtonIconAndCaption
.Caption = "Ok1"
'Adapte le nom du module où est la macro
.OnAction = "Module7.MaMacro"
'Nom de la feuille et l'image où se retrouve l'image
'Feuil1 n'est pas le nom de l'onglet de la feuille
'mais la propriété Name
Feuil1.Shapes("MichD1").Copy
'Pour utiliser l'image d'un bouton existant
'.FaceId = 19
.PasteFace
End With
With .Controls.Add
.Style = msoButtonIconAndCaption
.Caption = "Ok2"
'Adapte le nom du module où est la macro
.OnAction = "Module7.MaMacro1"
Feuil1.Shapes("MichD2").Copy
'.FaceId = 27
.PasteFace
End With
End With
End With

End Sub
'-----------------------------------------



MichD
------------------------------------------
"Péhemme" a écrit dans le message de groupe de discussion : 4ed26069$0$2519$

Bonjour à Tous,

Je viens d'installer Office2010.
Je recopie dans le Personnal.xlsb une macro qui me permettait, à l'ouverture
d'Excel2003, de créer un menu me donnant accès à, principalement, des outils
de présentation de feuille.
Dans ce menu, j'avais des boutons avec icones personnalisées.
Au sein de cette macro de création de menu j'ai, entre autres à titre
d'exemple, l'opération suivante.

Set BtnPop = .Controls.Add(msoControlPopup)
With BtnPop
.BeginGroup = True
.Caption = "Hauteur Ligne..."
Set Btn = .Controls.Add(msoControlButton)
Worksheets("Feuil1").Shapes("Image 1").Copy 'Copie l'icone
personnalisée
With Btn
.BeginGroup = True
.Style = msoButtonIconAndCaption
.Caption = "Hauteur : 5"
.OnAction = "Hauteur_5"
.PasteFace
End With
Set Btn = .Controls.Add(msoControlButton)
Worksheets("Feuil1").Shapes("Image 2").Copy 'Copie l'icone
personnalisée
With Btn
.Style = msoButtonIconAndCaption
.Caption = "Hauteur : 16"
.OnAction = "Hauteur_16"
.PasteFace
End With
End With

L'opération de copie de l'image (.PasteFace) bloque sous Excel2010.
Je n'ai pas trouvé (ou pas su trouver) dans l'aide les codes de
remplacement.
Qu'est-ce que je fais de mal ?
Par quoi cette instruction doit-elle être remplacée ?

Toutes solutions et/ou mises sur la voie seront appréciées.
Bien cordialement
Michel
Avatar
Péhemme
Pardon Denis, de revenir si tardivement.
J'étais sans ordi depuis le début de la semaine. Le service informatique
devait me le paramétrer des VPN et autres joyeusetés pour mon séjour au
Niger.
J'ai récupérer mon ordi ; je pars demain matin.
Je reviens donc vers toi dès que je suis connecté (ce qui, semble-t-il n'est
pas gagné).
Je comprends cependant que par le biais des commandbars cela devrait "le
faire" facilement. Il faut donc que j'adapte mon "Menu Perso".
Laisse-moi le temps d'arriver, je teste et te tiens informé.
Merci pour tes aides toujours appréciées.
Bien amicalement
Michel

"MichD" a écrit dans le message de
news:jau6dn$cep$
Bonjour,

Voici un exemple, tu devras adapter le nom des objets...

Ça fonctionne très bien!

'-----------------------------------------
Sub test()

On Error Resume Next
Application.CommandBars("MichD").Delete
Application.CommandBars.Add "MichD"

With Application.CommandBars("MichD")
.Visible = True
With .Controls.Add(msoControlPopup)
.BeginGroup = True
.Caption = "Hauteur Ligne..."
With .Controls.Add
.Style = msoButtonIconAndCaption
.Caption = "Ok1"
'Adapte le nom du module où est la macro
.OnAction = "Module7.MaMacro"
'Nom de la feuille et l'image où se retrouve l'image
'Feuil1 n'est pas le nom de l'onglet de la feuille
'mais la propriété Name
Feuil1.Shapes("MichD1").Copy
'Pour utiliser l'image d'un bouton existant
'.FaceId = 19
.PasteFace
End With
With .Controls.Add
.Style = msoButtonIconAndCaption
.Caption = "Ok2"
'Adapte le nom du module où est la macro
.OnAction = "Module7.MaMacro1"
Feuil1.Shapes("MichD2").Copy
'.FaceId = 27
.PasteFace
End With
End With
End With

End Sub
'-----------------------------------------



MichD
------------------------------------------
"Péhemme" a écrit dans le message de groupe de discussion :
4ed26069$0$2519$

Bonjour à Tous,

Je viens d'installer Office2010.
Je recopie dans le Personnal.xlsb une macro qui me permettait, à
l'ouverture
d'Excel2003, de créer un menu me donnant accès à, principalement, des
outils
de présentation de feuille.
Dans ce menu, j'avais des boutons avec icones personnalisées.
Au sein de cette macro de création de menu j'ai, entre autres à titre
d'exemple, l'opération suivante.

Set BtnPop = .Controls.Add(msoControlPopup)
With BtnPop
.BeginGroup = True
.Caption = "Hauteur Ligne..."
Set Btn = .Controls.Add(msoControlButton)
Worksheets("Feuil1").Shapes("Image 1").Copy 'Copie l'icone
personnalisée
With Btn
.BeginGroup = True
.Style = msoButtonIconAndCaption
.Caption = "Hauteur : 5"
.OnAction = "Hauteur_5"
.PasteFace
End With
Set Btn = .Controls.Add(msoControlButton)
Worksheets("Feuil1").Shapes("Image 2").Copy 'Copie l'icone
personnalisée
With Btn
.Style = msoButtonIconAndCaption
.Caption = "Hauteur : 16"
.OnAction = "Hauteur_16"
.PasteFace
End With
End With

L'opération de copie de l'image (.PasteFace) bloque sous Excel2010.
Je n'ai pas trouvé (ou pas su trouver) dans l'aide les codes de
remplacement.
Qu'est-ce que je fais de mal ?
Par quoi cette instruction doit-elle être remplacée ?

Toutes solutions et/ou mises sur la voie seront appréciées.
Bien cordialement
Michel