Bonjour le forum,
Il y a quelques semaines, j'avais déjà fait appel à vous pour me permettre d'imprimer des documents différents chaque jour, de manière automatique. J'en profite pour remercier Hasco et Softmama qui m'avait bien aidé cette fois-là .
Jusque là tout allait bien car j'imprimais sur l'imprimante par défaut, puis on m'a demandé d'envoyer l'impression sur une imprimante (réseau et au format A3). Cette imprimante n'est donc pas celle par défaut.
J'ai donc rajouter la ligne suivante, dans la macro "impression" :
Cela a fonctionnait une fois, puis le lendemain j'ai eu le droit à un message d'erreur numéro 1004 : La méthode 'ActivePrinter' de l'objet '_Application' a échoué.
Pour information : je fais appel à la macro "impression" tous les matins à 5h, à l'aide de cette ligne :
J'ai bien cherché sur XLD et sur d'autres sites, mais je n'ai pas trouvé mon bonheur.
Quelqu'un saurait-il la solution à ce problème ? Ou me réorienter vers un fil qui parlerait d'un sujet similaire.
Si besoin de plus d'informations, n'hésitez pas.
D'avance merci,
fx62
Il y a quelques semaines, j'avais déjà fait appel à vous pour me permettre d'imprimer des documents différents chaque jour, de manière automatique. J'en profite pour remercier Hasco et Softmama qui m'avait bien aidé cette fois-là .
Jusque là tout allait bien car j'imprimais sur l'imprimante par défaut, puis on m'a demandé d'envoyer l'impression sur une imprimante (réseau et au format A3). Cette imprimante n'est donc pas celle par défaut.
J'ai donc rajouter la ligne suivante, dans la macro "impression" :
Code:
Application.ActivePrinter = "\\Sfrwng051\PFRWNG0742 sur Ne04:"
Pour information : je fais appel à la macro "impression" tous les matins à 5h, à l'aide de cette ligne :
Code:
Application.OnTime TimeValue("05:05:00"), "impression", , True
Code:
Sub impression()
Application.ActivePrinter = "\\Sfrwng051\PFRWNG0742 sur Ne04
ImprimeDocument "O:\ETN\Rapports EU\Enregistrement des rapports\Rapport du " & Format(Now - 1, "yyyy-mm-dd") & " matin.xls", "Rapport_Electropostés"
ImprimeDocument "O:\ETN\Rapports EU\Enregistrement des rapports\Rapport du " & Format(Now - 1, "yyyy-mm-dd") & " après-midi.xls", "Rapport_Electropostés"
ImprimeDocument "O:\ETN\Rapports EU\Enregistrement des rapports\Rapport du " & Format(Now - 1, "yyyy-mm-dd") & " nuit.xls", "Rapport_Electropostés"
End Sub
Code:
Sub ImprimeDocument(FullName As String, SheetToPrint As String)
Dim wk As Workbook
Dim bFound As Boolean
'Parcours la collection des classeurs ouverts
'pour trouver le classeur correspondant à FullName
For Each wk In Workbooks
If wk.FullName = FullName Then
bFound = True
Exit For
End If
Next
'S'il n'a pas été trouvé et qu'il existe sur le disque alors l'ouvrir
If Not bFound And dir(FullName, vbDirectory) <> "" Then Set wk = Workbooks.Open(FullName)
If Not wk Is Nothing Then
'Lancer l'impression de la feuille correspondant à SheetToPrint
wk.Sheets(SheetToPrint).PrintOut
'Si le classeur n'étais pas ouvert avant l'impression, on le ferme.
If Not bFound Then wk.Close False
End If
End Sub
Quelqu'un saurait-il la solution à ce problème ? Ou me réorienter vers un fil qui parlerait d'un sujet similaire.
Si besoin de plus d'informations, n'hésitez pas.
D'avance merci,
fx62