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 :

Macro permettant d'imprimer des feuilles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Par défaut Macro permettant d'imprimer des feuilles
    Bonjour,

    J'aimerai qu'une macro imprime deux feuilles de mon fichier: la 1er de A41 à N41 la seconde de A34 à C34 si possible en resto/verso.
    J'ai testé ce code mais il ne fonctionne pas:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub printtest1trim()
            With Sheets("A")
            .Activate
            .Range("A39:N39").Select
            Call imprime
            End With
            With Sheets("B")
            .Activate
            .Range("A33:C33").Select
            End With
            Call imprime
    End Sub

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    le problème vient de Call imprime alors !

    Sinon faire une recherche pour trouver des exemples …

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    J'utilises ce code pour mes impressions à partir d'un bouton. A adapter selon tes besoins

    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
    18
    19
    20
     
    Private Sub CmbImp_Click()
    Dim MaFeuil As Object
    Dim vRep As Byte
     
        vRep = MsgBox("Voulez-vous continuer l'impression ?", vbYesNo + vbQuestion)
            If vRep = vbYes Then
            GoTo continu
        Else
            Exit Sub
            End If
     
    continu:
        Application.ScreenUpdating = False
            Set montab = Sheets("nomfeuille")
                Sheets("nomfeuille2").PageSetup.PrintArea = "$A$1:$N$72"
                Sheets("nomfeuille2").Visible = True
                Sheets("nomfeuille2").PrintOut Copies:=1
                Sheets("nomfeuille2").Activate
    End Sub

  4. #4
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut macro permettant d'imprimer des feuilles
    Bonjour NEC14,

    Que représente dans ta déclaration mafeuil1 qui n'est pas utilisé pas dans le reste du code ?

    Cordialement.

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    A NEC14,
    ton code pourrait se traduire par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CmbImp_Click()
    Dim vRep As Byte
    vRep = MsgBox("Voulez-vous continuer l'impression ?", vbYesNo + vbQuestion)
    If vRep = vbYes Then
      With Sheets("nomfeuille2")
        .PageSetup.PrintArea = "$A$1:$N$72"
        .Visible = True
        .PrintOut Copies:=1
      End With
    Else
      Exit Sub
    End If
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut macro permettant d'imprimer des feuilles
    Bonjour casefayere,

    le code repris me parait en effet plus clair mais cela répond -t-il vraiment à la question posée ?
    Le questionneur veut imprimer des plages se trouvant sur 2 feuilles différentes.

    Ce code doit alors être pour lui la procédure imprime (call imprime) et ce faisant la question est inutile. Me trompe-je ?

    Bien entendu le code initiale devra être revu avec plage = .range ....
    et mettre plage dans pagesetup.printarea

    Je pourrais faire un bout de code mais mon Excel me joue des tours depuis deux jours.

    Cordialement.

  7. #7
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut macro permettant d'imprimer des feuilles
    Bonjour,

    Utilise l'enregistreur de macro. il te donnera l'instruction pour une impression mode paysage; à savoir : .orientation = xlandscape

    Loger cette instruction à l’intérieur du bloc with dans le code proposé par casefayere.

    Pour le recto verso c'est plus complexe.
    Si ton imprimante fait du recto-verso, le mieux est de la configurer.

    Cordialement.

  8. #8
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    J'ai juste proposé un début de code qui était à adapter. Ce qui fonctionne pour moi n'est pas forcément ce qui convient, c'est juste une piste.

    Vous avez eu raison de corriger ma proposition.

    Cordialement

    René

    Un autre code à adapter

    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
    18
     
    Sub printtest1trim()
            With Sheets("i1")
            .Activate
            .Range("O1:X56").Select
            Call imprime
            End With
                    With Sheets("i2")
                    .Activate
                    .Range("O1:X57").Select
                Call imprime
                    End With
            With Sheets("i3")
            .Activate
            .Range("O1:X57").Select
        Call imprime
            End With
    End Sub

  9. #9
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Citation Envoyé par NEC14 Voir le message
    Bonjour,

    J'ai juste proposé un début de code qui était à adapter. Ce qui fonctionne pour moi n'est pas forcément ce qui convient, c'est juste une piste.

    Vous avez eu raison de corriger ma proposition.

    Cordialement

    René
    Pas de souci, ça fait avancer le shmilblic

    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Pour l'impression recto verso il y a une autre solution, c'est de passer par les touches de raccourcis mais ça ne fonctionne pas à tous les coups

    voilà le code que j'ai fait pour une imprimante Epson


    Code :
    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 recto_verso()
    'EPSON 210SX Series
        SendKeys "^{p}", False
        SendKeys "%{r}"
        For i = 1 To 19
            SendKeys "{TAB}"
        Next
        SendKeys "{RIGHT}"
        SendKeys "{RIGHT}"
        For i = 1 To 5
            SendKeys "{TAB}"
        Next
        SendKeys "{DOWN}"
        SendKeys "{ENTER}"
        SendKeys "{ENTER}", True
    End Sub

  11. #11
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Par défaut
    Bonjour,

    Merci pour vos réponses, j'ai testé ce code en rajoutant l'instruction mode paysage dans le with mais cela ne fonctionne pas

    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
    18
    19
    20
    21
    22
    23
    24
     
    Sub printtest1trim()
    Dim impzone As Worksheet, R1 As String
    Set impzone = Sheets("A")
    R1 = "A39:N39"
    imprime impzone, R1
    Set impzone = Sheets("B")
    R1 = "A33:C33"
    imprime impzone, R1
    End Sub
    Private Sub imprime(lafeuille As Worksheet, lazone As String)
    'Dim vRep As Byte
    'vRep = MsgBox("Voulez-vous continuer l'impression ?", vbYesNo + vbQuestion)
    'If vRep = vbYes Then
      With lafeuille
        .Orientation = xlandscape
        .Visible = True
        .PageSetup.PrintArea = lazone
        .PrintOut Copies:=1
      End With
    'Else
      'Exit Sub
    'End If
    End Sub
    J'ai aussi enregistré une macro permettant d'imprimer ma 1ère feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub Macro2()
    '
    ' Macro2 Macro
    '
     
    '
        ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
    End Sub
    Comment pourrais-je intégrer dans ce code l'impression de ma deuxième feuille

    Merci d'avance

  12. #12
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    Dans ton code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private Sub imprime(lafeuille As Worksheet, lazone As String)
    lazone c'est quoi ??

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/02/2014, 16h07
  2. [XL-2003] Macro permettant de recupérer des infos dans un fichier .txt externe
    Par EsKa68 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 10/08/2010, 11h09
  3. [XL-2003] imprimer des feuilles excel générées à partir d'une liste de données
    Par aminix9 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/02/2010, 14h48
  4. Exécution Macro VBA et actualisation des feuilles
    Par DjJEJ83 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/07/2007, 10h08
  5. [VBA-E] Lancement de la macro avant l'ouverture des feuilles
    Par repié dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/02/2006, 16h07

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