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!
 

Discussions similaires

Réponses
7
Affichages
1 K

Statistiques des forums

Discussions
312 239
Messages
2 086 500
Membres
103 236
dernier inscrit
Menni