Erreur 1004 : la méthode 'ActivePrinter' de l'objet '_Application' a échoué

fx62

XLDnaute Junior
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à :D.

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:"
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 :
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
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
 

fx62

XLDnaute Junior
Re : Erreur 1004 : la méthode 'ActivePrinter' de l'objet '_Application' a échoué

Bonjour francedemo,

Tu as raison, je viens de vérifier. C'est bien les ports réseaux qui sont différents.
Sur mon PC le port est bien en Ne04 par contre il passe a Ne07 sur le PC concerné (celui de mon supérieur).

J'ai bien trouvé ce code (au passage merci à Pascal XLD):
Code:
Dim aa as Byte
Dim Nom as String
For aa = 0 to 9
Nom = "\\sfrwng051\PFRWNG0742 sur Ne0" & aa & ":"
On Error Resume Next
Application.ActivePrinter = Nom
If ActivePrinter = Nom Then Exit For
Next
Mais où dois-je le placer ? dans "impression" ?

Encore merci,
fx62
 

tototiti2008

XLDnaute Barbatruc
Re : Erreur 1004 : la méthode 'ActivePrinter' de l'objet '_Application' a échoué

Bonjour à tous,

Mais où dois-je le placer ? dans "impression" ?

Au début, à la place de la première ligne

Code:
Sub impression()
Dim aa as Byte
Dim Nom as String
For aa = 0 to 9
Nom = "\\sfrwng051\PFRWNG0742 sur Ne0" & aa & ":"
On Error Resume Next
Application.ActivePrinter = Nom
If ActivePrinter = Nom Then Exit For
Next
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
 

fx62

XLDnaute Junior
Re : Erreur 1004 : la méthode 'ActivePrinter' de l'objet '_Application' a échoué

Comme promis je reviens vers vous.
Après une semaine de test, aucun problème, et plus d'erreur 1004.
Je vous remercie donc pour vos conseils et remarques.
A la prochaine .. sûrement
fx62.
 

Statistiques des forums

Discussions
311 720
Messages
2 081 925
Membres
101 841
dernier inscrit
ferid87