IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Noms d'imprimantes en variable [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2007
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 681
    Par défaut Noms d'imprimantes en variable
    Bonjour le forum,

    Je dois pouvoir imprimer sur 2 imprimantes qui possèdent 2 bacs chacunes, l'un avec du papier blanc et l'autre avec du papier à entête.
    Au début je rentrais le nom de l'imprimante et de son bac à utiliser en dur dans le code et cela fonctionnait très bien. Pour avoir plus de souplesse, je souhaite mettre le non de l'imprimante en variable dans le code.
    J'ai une feuille "PARAM" avec la liste des noms des imprimantes et de leurs bacs et une liste de validation pour choisir celle que je souhaite utiliser.
    Dans le code j'ai déclaré en variable le nom à récupérer et je le récupère bien.
    Au moment de l'exécution du code, mais c'est quand je dois activer l'imprimante que j'ai un message d'erreur, sûrement un problème de syntaxe. J'ai essayé de rajouter des doubles cotes(") mais sans succès. Quelqu'un a-t-il la solution?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub Imprimer_Couv() 'Couverture
        ImpBac1 = Sheets("PARAM").Range("B26") 'imprimante et bac à utiliser
        ImpBac2 = Sheets("PARAM").Range("B27") 'imprimante et bac à utiliser
     
        'Imprimer sur papier entête (bac 2)
        Range("A1:AM61").Select 'sélection de la zone à imprimer
     
        'Ancien code qui fonctionne
        'Application.ActivePrinter = "\\SOFISDATA\IMP01-001 sur Ne07:"
     
        'Nouveau code qui ne fonctionne pas
        Application.ActivePrinter = "ImpBac2"
     
        ExecuteExcel4Macro _
            "PRINT(1,,,1,,,,,,,,1,""ImpBac2"",,TRUE,,FALSE)" 'Nb de copies en position 4 (1)
     
    End Sub
    A l'avance, merci.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Salut,

    Pour commencer, mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PageSetup.PrintArea = "$A$1:$AM$61
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:AM61").Select
    C'est comme cela qu'on définit une zone à imprimer.

    Ensuite, en écrivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ActivePrinter = "ImpBac2"
    tu sous-entends que le nom de ton imprimante est ImpBac2, ce qui est faux. Tu as 2 choix. Soit tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ActivePrinter = ImpBac2
    et ta cellule B27 contient "\\SOFISDATA\IMP01-001 sur Ne07:" avec les guillemets ! Soit tu écris Application.ActivePrinter = """" & ImpBac2 & """" si tu as \\SOFISDATA\IMP01-001 sur Ne07: en B27 sans les guillemets.

    FYI, tu as un forum VBA Excel : à l'avenir, poste dessus, il est plus approprié pour tout ce qui touche au VBA.

    A+

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2007
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 681
    Par défaut
    Bonsoir,
    Je vais poster dans la partie VBA et simplifier car je me suis un peu mélangé les pinceaux dans les noms d'imprimantes.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2007
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 681
    Par défaut Noms d'imprimantes en variable
    Bonjour le forum,


    Comment récupérer le nom de l'imprimante à utiliser sachant que celle-ci peut être différente en fonction des besoins.
    Le choix se fait dans la feuille "PARAM" en B26 (liste de validation)

    Voici mon code (je suis novice) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub Imprimer_Couv() 'Imprimer la couverture
        ImpBac1 = Sheets("PARAM").Range("B26") 'imprimante et bac à utiliser
     
        'Zone à imprimer
        ActiveSheet.PageSetup.PrintArea = "$A$1:$AM$61"
     
        'Ancien code qui fonctionne avec saisie en dur
        'Application.ActivePrinter = "Brother HL-1430 series sur Ne07:"
     
        'Nouveau code qui ne fonctionne pas
        Application.ActivePrinter = "ImpBac1" '<---Arrêt ici
     
        ExecuteExcel4Macro _
            "PRINT(1,,,1,,,,,,,,1,"""" & ImpBac1 & """",,TRUE,,FALSE)" 'Nb de copies en position 4 (1)
     
    End Sub
    Je récupère bien le nom en "ImpBac1", mais j'ai un message d'erreur au moment d'activer l'imprimante.

    Quelqu'un voit-il pourquoi?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Salut,

    As-tu testé ce que je t'ai proposé dans mon autre message ?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2007
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 681
    Par défaut
    J'ai modifié le code comme tu me l'avais suggéré mais j'ai toujours un message d'erreur au moment d'activer l'imprimante.
    Désolé.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Dis-moi ce que tu as comme valeurs dans ta cellule, mot pour mot. Donne m'en 2 ou 3.

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2007
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 681
    Par défaut
    Bonjour,

    Voici 3 imprimantes

    Brother HL-1430 series sur Ne07:
    \\SOFISDATA\IMP01-001 sur Ne07:
    \\SOFISDATA\IMP01-001_bac2 sur Ne08:

    et une copie d'écran d'une partie de ma feuille "PARAM" avec des listes de validation en B26 et B27. Pour tester ton code je n'ai utilisé que B26.

    J'ai eu un doute sur le n° de port et viens de re-tester en rentrant le nom en dur et l'imprimante fonctionne sauf que la feuille sort blanche avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveSheet.PageSetup.PrintArea = "$A$1:$AM$61"
    et quand je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:AM61").Select
    elle s'imprime normalement.

    Merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. LOT DTS - nom de la table variable
    Par speed034 dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 21/02/2006, 10h20
  2. Appel de methode dont le nom est dans une variable
    Par osopardo dans le forum Langage
    Réponses: 1
    Dernier message: 24/11/2005, 20h56
  3. Noms des imprimantes installées
    Par bebeours dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/11/2002, 15h57
  4. nom de fichier et variables d'environnement
    Par joebarthib dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2002, 15h21
  5. Connaitre le nom des imprimantes
    Par bastien dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/06/2002, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo