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 excel pour imprimer [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Février 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 12
    Par défaut Macro excel pour imprimer
    Bonjour à tous et chacun,

    J'ai un souci avec ma macro pour imprimer jvous explique ce que jai et ce que je voudrais.

    Voila j'ai un tableau qui contient 5 colonne et le nombre de ligne peu varier quelque fois donc ce que je voudrais faire ces que
    dans une ligne je place mes information sur une autre page a des cellules different du premieret apres j'imprime cette page ensuite j'aimerais faire la meme chose avec toute les ligne une a une
    si je fait le code un a un j'y arrive mais ce que je veux faire ces faire une loop pour toute mes ligne et imprimer chacune d'elle qui le fasse jusqua ce que ma colonne a est plus rien ou soit vide merci. J'espere avoir été assez clair vous seriez bien aimable de m'aider.
    Nom Camion Date Heure Départ Job
    paul brisebois camion#77 12-R 20 fevrier 2014 5:00 Sable tamiser
    claude lanoue camion#60-211 20 fevrier 2014 6:00 asphalte client
    denis labonté camion#89-225 20 fevrier 2014 6:00 bitume
    Ceci est un exemple de mon tableau dans ma feuille tableau et comme jaimerais avoir ces la ligne avec le nom de lemployer soit transferer sur la page imprimer et imprimer ensuite on efface les donnes sur la feuile imprimer et on reprend la ligne suivante dans le tableau j'espere vous avoir bien expliquer.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 146
    Par défaut
    Citation Envoyé par casa43 Voir le message
    j'espere vous avoir bien expliquer.
    Euh... désolé, mais... non (en tout cas, pas pour moi

  3. #3
    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,

    et pourquoi transférer les lignes sur une autre feuille si c'est pour toutes les imprimer ?

    Citation Envoyé par casa43 Voir le message
    ce que je veux faire ces faire une loop pour toute mes ligne et imprimer chacune d'elle
    Pourquoi ne pas les imprimer directement ?

  4. #4
    Membre actif
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Février 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 12
    Par défaut
    Je ne peu pas car ces une feuille ou il y aura les indice du tableau dans le haut et le reste de la feuille sera des case vide pour que le chauffeur ecrit ces chose a la main de sa journee mais cette feuille je doit en sortir une a chaque jour pour chaque chauffeur.
    Ces sur que la j'ai deja un code pour imprimer le tout mais jai identifier les case une a une dans la macro et ces un peu lourd comme code et en plus si il y a un nouveau chauffeur que je rajoute au tableau je doit recreer sa macro et ces chiant un brin.

  5. #5
    Membre actif
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Février 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 12
    Par défaut J'ai finalement trouver ...
    J'ai finalement réussi apres plusieurs piochage j'ai reussi merci quand meme a ceux qui on tenter de m'aider et je vous laisse voir ce que j'ai fait comme formule probablement pas trop jolie peu etre qu'il y en a qui peuve faire mieux mais la sa marche du moins je pourrai me concentrer sur autre chose...
    Voila le code ce que sa donne:
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    Sub Imprime()
           Sheets("Tableau").Select
        Range("A2").Select
        ligne = 2
        Do While Cells(ligne, 1) <> ""
            '-----------------------------------------------
        'Ici on imprime les donnees de une ligne au case voulue
        Range(Selection, Selection.End(xlDown)).Select
        Sheets("Tableau").Select
        Range("A" & ligne).Select
        Selection.Copy
        Sheets("Imprimer").Select
        Range("A5:C6").Select
        ActiveSheet.Paste
        Sheets("Tableau").Select
        Range("B" & ligne).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Imprimer").Select
        Range("C8:D8").Select
        ActiveSheet.Paste
        Sheets("Tableau").Select
        Range("C" & ligne).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Imprimer").Select
        Range("F5:H6").Select
        ActiveSheet.Paste
        Sheets("Tableau").Select
        Range("D" & ligne).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Imprimer").Select
        Range("A8:B8").Select
        ActiveSheet.Paste
        Sheets("Tableau").Select
        Range("E" & ligne).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Imprimer").Select
        Range("E8").Select
        ActiveSheet.Paste
        '-------------------------------------------------------
        'Ici on imprime la feuille
     
        Sheets("Imprimer").Select
        ActiveWindow.SelectedSheets.PrintOut Copies:=1
     
        '--------------------------------------------------------
        'Ici on efface les donnes sur la feuille imprime apres avoir imprimer
     
        Range("A5:C6").Select
        ActiveCell.FormulaR1C1 = ""
        Range("F5:H6").Select
        ActiveCell.FormulaR1C1 = ""
        Range("E8").Select
        ActiveCell.FormulaR1C1 = ""
        Range("C8:D8").Select
        ActiveCell.FormulaR1C1 = ""
        Range("A8:B8").Select
        ActiveCell.FormulaR1C1 = ""
     
     
        '--------------------------------------------------------
        'Ici on efface les donnees qui seront plus utile car deja imprimer
     
         Sheets("Tableau").Select
        Range("E" & ligne).Select
        ActiveCell.FormulaR1C1 = ""
        Range("D" & ligne).Select
        ActiveCell.FormulaR1C1 = ""
     
     
        '----------------------------ON CHANGE DE LIGNE-------------------------------------------
     
            ligne = ligne + 1
    End
    Si jamais vous voulez d'autre renseignements n'hesitez pas jpeu essayer de vous aider du mieux de mes connaissances.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 146
    Par défaut
    Comme déjà souvent expliqué, dans du code VBA, il est déconseillé d'abuser des .Select C'est inutile, ça alourdit le code et ça ralentit...

    Au lieu de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets("Tableau").Select
    Range("A" & ligne).Select
    Selection.Copy
    Sheets("Imprimer").Select
    Range("A5:C6").Select
    ActiveSheet.Paste
    Essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Tableau").Range("A" & ligne).Copy
    Sheets("Imprimer").Range("A5:C6").Paste
    De même,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("A8:B8").Select
    ActiveCell.FormulaR1C1 = ""
    peut être simplement remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A8:B8").FormulaR1C1 = ""
    Enfin, inutile de mettre Application.CutCopyMode = False de partout. Un seul suffit, en fin de collage(s). En fait, c'est comme quand tu fait un copier-coller, et que tu appuies sur ESC pour déselectionner la zone "encadrée en tirets clignotants"

  7. #7
    Membre actif
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Février 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Transports

    Informations forums :
    Inscription : Février 2014
    Messages : 12
    Par défaut
    Merci Beaucoup Phil'oche j'en prend note ... Un gros merci!

    AVEC le code : Sheets("Imprimer").Range("A5:C6").Paste la macro s'arrete la car elle me dit erreur 438 as tu une explication j'ai fait comme tu ma dit.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 146
    Par défaut
    C'est une erreur de ma part, pour coller, il n'y a besoin que de l'adresse de la 1ère cellule de destination.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Imprimer").Range("A5").Paste
    Pour être encore plus simple, tu as aussi le droit d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Tableau").Range("A" & ligne).Copy Sheets("Imprimer").Range("A5")
    pour tout faire en une seule opération !

    (Vérifie aussi si ta feuille ou zone de destination n'est pas protégée)

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

Discussions similaires

  1. macro excel pour transformer L1C1 en A1
    Par mikeOSX dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/09/2007, 09h24
  2. macro excel pour récupérer cellules
    Par touaine dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2007, 21h05
  3. Macro Excel pour un import vers access
    Par Nicola dans le forum Access
    Réponses: 6
    Dernier message: 21/02/2007, 15h50
  4. Aide sur les macros Excel pour recopie auto de données
    Par nicoduhavre dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/11/2005, 08h38

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