Word Bouton VBA + macro ne fonctionne pas

Cricriiii

XLDnaute Nouveau
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 édition:

Staple1600

XLDnaute Barbatruc
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.
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof