Affecter une macro a chaque nouveau fichier

  • Initiateur de la discussion Initiateur de la discussion yusukens
  • 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 !

yusukens

XLDnaute Occasionnel
Bonjours,

j'aurai une question.
voila j'ai crée une macro.
j'ai crée un bouton
j'ai affecté la macro sur mon bouton.
je test le bouton et tout marche a merveille.

le probleme est que lorsque je crée un nouveau fichier excel.
je dois à chaque fois rappeler la macro sur VBA et aussi réaffecter la macro sur le bouton.

y'aura t'il pas un moyen qui permet de rendre le bouton (contenant une macro) accéssible a tous les nouveau fichier excel ?
peut etre dans le fichier Excel11.xlb qui sert a gérer les barres d'outil ??

merci pour votre aide


Message édité par: yusukens, à: 26/05/2006 15:19
 
Private Sub Workbook_Open()
Bonjour Jusukens et le Forum
un petit bout de macro à adapter et mettre dans le workbook_open d'un nouveau classeur puis à enregistrer en 'xla'

Dim myBar As Office.CommandBar
Dim newButton As Office.CommandBarButton
On Error Resume Next
Set myBar = Application.CommandBars.Add(Name:='DeleteSheet', Position:=msoBarTop)
myBar.Visible = True

With myBar
Set newButton = .Controls.Add(Type:=msoControlButton)
With newButton
.BeginGroup = False
.Caption = 'DeleteSheet'
.FaceId = 329 'à adapter selon l'icone que tu désire
.OnAction = 'le nom de ta macro' ' à adapter
End With
End With
On Error GoTo 0
End Sub

Bon courage et à +
Denis B)
 
Private Sub Workbook_Open()
Bonjour Jusukens et le Forum
un petit bout de macro à adapter et mettre dans le workbook_open d'un nouveau classeur puis à enregistrer en 'xla'

Dim myBar As Office.CommandBar
Dim newButton As Office.CommandBarButton
On Error Resume Next
Set myBar = Application.CommandBars.Add(Name:='DeleteSheet', Position:=msoBarTop)
myBar.Visible = True

With myBar
Set newButton = .Controls.Add(Type:=msoControlButton)
With newButton
.BeginGroup = False
.Caption = 'DeleteSheet'
.FaceId = 329 'à adapter selon l'icone que tu désire
.OnAction = 'le nom de ta macro' ' à adapter
End With
End With
On Error GoTo 0
End Sub

Bon courage et à +
Denis B)
 
Bonjour Yusukens,

Je pense qu'en renregistrant ton fichier Excel contenant le bouton et la macro comme modele '.xlt', alors cela devrait marcher.

Quand tu veux ouvrir un nouveau classeur, tu fais fichier, nouveau et tu choisis le modele que tu viens d'enregistrer.
 
Merci denis et Joshua14

j'ai essayé la méthode de joshua14 qui marche très bien.
je te remerci joshua14

par contre j'aimerai bien mieux comprendre la maniere de denis.
je t'avouré que je sais pas comment accéder au workbook_open
en fait j'ai juste a copier tout ce que tu a écrit et le mettre a la suite de ma macro c ça??

ma macro est la suivante:

Sub coller_valeur()
'
ActiveCell.SetPhonetic
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub


Message édité par: yusukens, à: 26/05/2006 15:59
 
je crois avec compris.

en fait je dois le mettre a la suite de ma macro et

a la place de 'le nom de ta macro' dans
.OnAction = 'le nom de ta macro'
je met le nom du mien


a la place de '329' dans
.FaceId = 329
je met le numéro de mon bouton

c'est bien ça ?
si c'est ça comment je peux faire pour connaitre le numéro de mon bouton ??
 
Re Bonjour le fil et le Forum
en fait il s'agit de créer une macro complémentaire que tu viens mettre dans le XlStart
Le code que je t'ai donné vient dans cette macro complémentaire
ci-joint un exemple
quand tu as fini, il te suffit de supprimer le bouton dans la barre des menus.
Bon courage et à +
Denis B)
 
merci pour le fihier
mais cela ne marche pas très bien.
j'aipeu etre sauté une étape.
je décrit toute ma procédère :

- je crée un nouveau fichier *.xls
- je vais dans le VBA de ce nouveau fichier
- je vais dans ThisWorkook
- je colle ça :


Option Explicit

Private Sub Workbook_Open()
Dim myBar As Office.CommandBar
Dim newButton As Office.CommandBarButton
On Error Resume Next
Set myBar = Application.CommandBars.Add(Name:='DeleteSheet', Position:=msoBarTop)
myBar.Visible = True

With myBar
Set newButton = .Controls.Add(Type:=msoControlButton)
With newButton
.BeginGroup = False
.Caption = 'DeleteSheet'
.FaceId = 329
.OnAction = 'coller_valeur'
End With
End With
On Error GoTo 0
End Sub
Sub coller_valeur()
'Ici ta macro
With ActiveWorkbook
.ActiveCell.SetPhonetic
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
End Sub





- je repart sur ma feuille excel et je crée un bouton
- a ce bouton j'infecte la macro : ThisWorkbook.coller_valeur
- je fais ensuite enregistrer sous, et je le l'engistre en format *xla
- j'eteint tout les document et je fais encore une nouvelle feuille excel pour tester le bouton.
- lorsque je veux effectuer le bouton, l'erreur est le suivant : Propriété ou méthode non gérée par cet objet.


ou ai-je fais une erreur ?


Message édité par: yusukens, à: 26/05/2006 16:59
 
- 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
796
Themax
T
Réponses
5
Affichages
499
Retour