Adresse d'imprimante qui change

Bonjour le forum et puisque cela fait longtemps que je ne suis pas venu, je vous souhaite une bonne année.

Voici mon problème.

J'imprime par macro (toute simple enregistré avec excel) sur une imprimante du réseau qui s'apelle par exemple: imprabc.

lorsque j'ai enregistré la macro, il m'a mis "imprimante imprabc sur ne02" jusque la pas de problème.

Après un blocage, je me suis aperçu que le "ne02" se changeait régulièrement en "ne01" ou "ne03".

D'où ma question.

Puis-je désigner l'imprimante juste par "imprabc" et trouver le "ne0X" du moment à coup sùr?

ou puis-je désigner cette même imprimante par son adresse IP (je croit que celle-ci ne change jamais mais j'ai pas vérifié, dites moi si je me trompe)?

J'esperes avoir été assez clair et vous remercie d'avance pour votre aide.

Cordialement.

Salut le forum

Bonne Année 2012 !

Qu'elle soit riche de joie et de gaieté,

qu'elle déborde de bonheur et de prospérité

et que tous les voeux formulés deviennent réalité !

Utilise une boîte de dialogue pour sélectionner l'imprimante

Dim dlganswer As Boolean

        dlganswer = Application.Dialogs(xlDialogPrinterSetup).Show

    If dlganswer = True Then
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, collate:=True
    End If

Trouver sur un autre forum, une boucle pour tester le port de l'imprimante

For aa = 0 To 9 
 Nom = 'EPSON Stylus C82 Series sur Ne0' & aa & ':' 
 OnErrorResumeNext 
 Application.ActivePrinter = Nom 
 If ActivePrinter = Nom ThenExitFor 
Next

Mytå

Bonsoir

A essayer

Sub Impression()
' Adaptée à partir du code de PascalXLD
' http://www.excel-downloads.com/forum/46536-imprimante-sur-port-usb-variable.html
Dim I As Integer
Dim MonImprimante As String
Dim Nom As String

  MonImprimante = ActivePrinter               'récupérer imprimante active

  On Error Resume Next
  For I = 0 To 9
    Nom = "imprimante imprabc sur ne0" & I & ":"
    Application.ActivePrinter = Nom
    If UCase(ActivePrinter) = UCase(Nom) Then Exit For
  Next I
  On Error GoTo 0

  If UCase(ActivePrinter) = UCase(MonImprimante) Then
    MsgBox "Imprimante non trouvée" & vbCr & Nom, Title:="Impression annulée"
  Else
    'ActiveSheet.PrintPreview
    ActiveSheet.PrintOut
    ActivePrinter = MonImprimante               'remettre imprimante active
  End If
End Sub

Re et merci pour vos réponses.

j'ai réussi a faire l'impression en adaptant cette macro qui fonctionne. (n'étant pas au boulot, j'ai essayer chez moi.).

Sub impression()
' Adaptée à partir du code de PascalXLD
' http://www.excel-downloads.com/forum/46 ... iable.html
Dim I As Integer
Dim MonImprimante As String
Dim Nom As String
    Sheets("Feuil2").Activate
   ' Call Macro2
    Range("A1").CurrentRegion.Select
    ActiveSheet.PageSetup.PrintArea = _
    ActiveCell.CurrentRegion.Address

    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With

  MonImprimante = ActivePrinter               'récupérer imprimante active

  On Error Resume Next
  For I = 0 To 9
    Nom = "HP Photosmart 1245 series sur ne0" & I & ":"
    Application.ActivePrinter = Nom
    If UCase(ActivePrinter) = UCase(Nom) Then Exit For
  Next I
  On Error GoTo 0

  'If UCase(ActivePrinter) = UCase(MonImprimante) Then
   ' MsgBox "Imprimante non trouvée" & vbCr & Nom, Title:="Impression annulée"
  'Else
   ' ActiveSheet.PrintPreview
   'ActiveSheet.PrintOut
       With ActiveSheet.PageSetup

    'Application.ActivePrinter = Nom
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = "toto     &D     &T"
        .LeftMargin = Application.InchesToPoints(0)
        .RightMargin = Application.InchesToPoints(0)
        .TopMargin = Application.InchesToPoints(0)
        .BottomMargin = Application.InchesToPoints(0.47244094488189)
        .HeaderMargin = Application.InchesToPoints(0)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlPortrait
        .Draft = False
         .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .PrintErrors = xlPrintErrorsDisplayed
            ActiveWindow.SelectedSheets.PrintOut Copies:=2, ActivePrinter:= _
        Nom, collate:=True
    End With
    ActivePrinter = MonImprimante               'remettre imprimante active
' End If
End Sub

Cependant j'ai changer le nom de l'imprimante (normalement c'est HP Photosmart 2570 series)et ça imprime quand même, peut-être que l'erreur viens de moi mais je ne trouve pas.

Bonsoir

Et si tu remets le test cela imprime quand même ?

  If UCase(ActivePrinter) = UCase(MonImprimante) Then
   MsgBox "Imprimante non trouvée" & vbCr & Nom, Title:="Impression annulée"
 Else

      With ActiveSheet.PageSetup
.
.
.

    End With
    ActivePrinter = MonImprimante               'remettre imprimante active
 End If
End Sub

C'est une macro utilisée pour sélectionner une imprimante sur le réseau de n'importe quel ordinateur

oui, ça me met le message d'imprimante non trouvé et des que je la ferme, ca imprime , bizarre...

mais en mettant une condition:

    Nom = "HP Photosmart 2580 series sur ne0" & I & ":"
    Application.ActivePrinter = Nom

    If Nom <> "HP Photosmart 2570 series sur ne0" & I & ":" Then Exit For

ça a l'air de fonctionner ( ça n'imprime vraiment qu'avec 2570)mais c'est quand même bizarroïde, enfin, je trouve.

je l'essaierais au boulot pour voir.

En attendant, il n'est pas possible de lancer l'impression en selectionnant l'adresse ip de l'imprimante? ce serait bien et au moins plus aucun soucis.

Rechercher des sujets similaires à "adresse imprimante qui change"