Word Bouton VBA + macro ne fonctionne pas

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

C

Cricriiii

Guest
Bonjour,

J'ai créé des macros sous Word avec l'enregistrement automatique. Elles fonctionnent et font ce que je veux lorsque je les lance depuis la boîte de dialogue macro/exécuter (l'une lance une boîte de dialogue d'impression PDF, les autres font référence à des commandes ASK) .

Lorsque j'y ajoute un Private Sub pour ajouter un bouton à cliquer, l'association avec la macro d'impression PDF fonctionne, pas avec ASK.
Pourquoi ? (Erreur d'exécution 4605, et il me surligne en jaune la première ligne selection.fields.add de Sub Lot() ).

VB:
Sub Enregistrer_PDF()
Private Sub CommandButton2_Click()
' Enregistrer_PDF Macro
'
       ActivePrinter = "Microsoft Print to PDF"
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:="2-12", PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    
End Sub


Sub Lot()
Private Sub CommandButton3_Click()
' Caractéristiques du lot
'
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
        "ASK  Lot_numéro ""Lot - Numéro ?"" ", PreserveFormatting:=True
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
        "ASK  Lot_étage ""Lot - Étage ?"" ", PreserveFormatting:=True
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
        "ASK  Lot_surface ""Lot - Surface ?"" ", PreserveFormatting:=True
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
        "ASK  Lot_loyer ""Lot - Loyer (sans €) ?"" ", PreserveFormatting:=True
End Sub

Je suis un peu perdu. Pour info, le "button3" existe, hein.

Je vous remercie 🙂
 
Dernière modification par un modérateur:
Bonsoir le fil, Cricriiii

CriCriiii
Une façon de faire pourrait être la suivante
VB:
Private Sub CommandButton2_Click()
Call Enregistrer_PDF
End Sub
Et Enregitrer_PDF devrait être rédigé comme au départ
VB:
Sub Enregistrer_PDF()
' Enregistrer_PDF Macro
'
       ActivePrinter = "Microsoft Print to PDF"
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:="2-12", PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    
End Sub

Suivre le même raisonnement pour l'autre macro.
 
Bonjour,

Il n'y a pas de macro dans votre fichier.
De plus une procédure sub ne peut pas contenir une autre procédure sub telle que celle que vous nous avez montré dans votre post #1
VB:
Sub Enregistrer_PDF()
Private Sub CommandButton2_Click()
' Enregistrer_PDF Macro
'
       ActivePrinter = "Microsoft Print to PDF"
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:="2-12", PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    
End Sub

Idem pour Sub Lot() suivit de Private Sub CommandButton3_Click()
Au passage, les end sub semblent avoir été oubliés également.

Trouver un tuto sur vba est urgent.

Cordialement
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
2 K
S
Réponses
10
Affichages
4 K
Sylvain29
S
Retour