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

Impression d'un objet excel dynamique

klm1234

XLDnaute Nouveau
Bonjour tout le monde,

J'ai une macro qui construit un fichier Excel à partir d'un template et remplis plusieurs champ à partir d'une base de données. Résumons :

-On clique sur le bouton "Imprimer" dans le fichier "A" (la base de données)
-Le fichier "B" se construit de lui-même à partir du fichier "A" et s'affiche ensuite

Ma question :

-Comment lancer l'impression du fichier "B" à partir de la macro du fichier "A" ?
À terme je voudrais même ne pas afficher le fichier "B" du tout, le travail se ferait en fond, la fenêtre de sélection d'imprimante s'afficherait via le code :
Code:
    If Not Application.Dialogs(xlDialogPrinterSetup).Show Then Exit Sub

Et le fichier "B" s'imprimerait. J'ai essayer d'utiliser la commande suivante :
Code:
    oExcel.Sheets("code").PrintOut

Où "oExcel" est ...
Code:
        oExcel.Workbooks.Open sFormPath              'Open file from template
        oExcel.Worksheets(Left(code, 4) & "xxxxxxxx").Select
        oExcel.ActiveSheet.Name = code
        oExcel.Visible = False                      'Set to true for debugging
        oExcel.EnableEvents = False
        oExcel.DisplayAlerts = False                'Don't prompt for saving

Le problème c'est que l'impression ne se lance pas... Et j'ai l'impression (un peu nul comme jeu de mot ^^) que la ligne de code servant à sélectionner l'imprimante est effective pour le fichier "A" et non pour le fichier "B". Donc là je suis un peu dépassé

Merci d'avance!
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Impression d'un objet excel dynamique

Bonjour klm,

je viens de tester ce code là avec succès :

Code:
Dim app1 As Excel.Application
Set app1 = New Excel.Application
    app1.Visible = False
    app1.EnableEvents = False
    app1.DisplayAlerts = False
    app1.Workbooks.Add
    app1.ActiveWorkbook.ActiveSheet.Range("A1").Value = "test"
    aa = app1.Dialogs(xlDialogPrinterSetup).Show
    app1.ActiveWorkbook.ActiveSheet.PrintOut

mais il me montre la feuille en imprimant...
 

klm1234

XLDnaute Nouveau
Re : Impression d'un objet excel dynamique

Bonjour tototiti2008,

Effectivement en remplacent "Application." par mon objet "oExcel." sa marche!
Merci encore une fois

PS : Bizarre qu'il ne te cache pas la feuille car moi si je met ".Visible=False" tout se fait sans qu'on s'en aperçoive!
 

klm1234

XLDnaute Nouveau
Re : Impression d'un objet excel dynamique

Mise à jour : finalement la feuille s'affiche même avec la propriété visible réglé à False...

Des idées de solution pour régler le problème??

Merci!
 

Discussions similaires

Réponses
7
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…