Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…