Impression en ligne par ligne

Brudy

XLDnaute Junior
Bonjour à tous !

J'ai un soucis pour automatiser une impression sous condition :

j'ai réalisé une première macro enregistrée qui est la base de ce que j'aimerais faire :
Selection colonne C:C > prendre la première donnée en C13, copier/coller dans ma zone Feuille!recapOR A7 > Imprimer la feuille, Ligne +1, copier la donnée en C14, coller en A7 > Imprimer, +1, si C15 vide stop, sinon copier C15, Coller en a7, imprimer, +1, si C16 vide alors stop... Etc Etc.

Je vous met des captures d'écran si ça peut vous aider dans le visuel. Mon principal soucis c'est de lui indiquer le +1, si vide stop sinon impression etc.

CSS:
Sub macroimprim()
'
' macroimprim Macro
'

'
    Range("C13").Select
    Selection.Copy
    Sheets(Array("Récap OR t", "Récap OR")).Select
    Sheets("Récap OR").Activate
    Range("A7").Select
    ActiveSheet.Paste
    ActiveWindow.View = xlPageBreakPreview
    Application.CutCopyMode = False
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    Sheets(Array("Récap OR t", "Récap OR")).Select
    Sheets("Récap OR t").Activate
    ActiveWindow.View = xlNormalView
    Range("C14").Select
    Selection.Copy
    Range("D44").Select
    Sheets(Array("Récap OR t", "Récap OR")).Select
    Sheets("Récap OR").Activate
    Range("A7").Select
    ActiveSheet.Paste
    ActiveWindow.View = xlPageBreakPreview
    Application.CutCopyMode = False
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    ActiveWindow.View = xlNormalView
    Sheets(Array("Récap OR t", "Récap OR")).Select
    Sheets("Récap OR t").Activate
    Range("C15").Select
    Selection.Copy
    Sheets(Array("Récap OR t", "Récap OR")).Select
    Sheets("Récap OR").Activate
    Range("A7").Select
    ActiveSheet.Paste
    ActiveWindow.View = xlPageBreakPreview
    Application.CutCopyMode = False
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    Sheets(Array("Récap OR t", "Récap OR")).Select
    Sheets("Récap OR t").Activate
    ActiveWindow.View = xlNormalView
    Range("C16").Select
    Selection.Copy
    Sheets(Array("Récap OR t", "Récap OR")).Select
    Sheets("Récap OR").Activate
    Range("A7").Select
    ActiveSheet.Paste
    ActiveWindow.View = xlPageBreakPreview
    Application.CutCopyMode = False
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    ActiveWindow.View = xlNormalView
    Sheets(Array("Récap OR t", "Récap OR")).Select
    Sheets("Récap OR t").Activate
End Sub
 

Pièces jointes

  • pnnnng.png
    pnnnng.png
    92.6 KB · Affichages: 38
  • pnnn.png
    pnnn.png
    22 KB · Affichages: 34

Lolote83

XLDnaute Barbatruc
Salut Brudy,
Peut être en modifiant ton code par celui-ci, si j'ai bien analysé ce que devait faire ton code.
Code:
Sub Test()
    xDerLig = Range("C1000").End(xlUp).Row
    For Each xCell In Range("C5:C" & xDerLig)
        With Sheets("Récap OR")
            xCell.Copy .Range("A7")
            .PrintOut Copies:=1
        End With
        Application.CutCopyMode = False
    Next xCell
End Sub
@+ Lolote83
 

Brudy

XLDnaute Junior
Si tu as le temps en passant par là Lolote, est ce que tu pourrait m'expliquer les points de la macro que j'ai pas saisis ?

merci d'avance !

VB:
Sub Test()
'Xderlig détermine la longueur maximum
    xDerLig = Range("C1000").End(xlUp).Row
    'Pour chaque celulle C à partir de C13
    For Each xCell In Range("C13:C" & xDerLig)
    'Détermine la feuille
        With Sheets("Récap OR")
        'Copie C et colle en A7 dans la feuille déterminée
   
             xCell.Copy .Range("A7")
             'Imprim une copie
            .PrintOut Copies:=1
            'Fin de cette macro
        End With
        Application.CutCopyMode = False
    Next xCell
    'Celulle suivante
End Sub
 

Lolote83

XLDnaute Barbatruc
Salut Brudy,
A prioris, tu as bien compris le fonctionnement
voici mes explications qui sont quasi identiques aux tiennes.
Code:
Sub Test()
   xDerLig = Range("C1000").End(xlUp).Row       'Détermine la dernière ligne de la colonne C
   For Each xCell In Range("C13:C" & xDerLig)   'On parcours toutes les lignes de la C13 à dernière ligne
        With Sheets("Récap OR")                 'On travaille sur l'onglet Récap OR
            xCell.Copy .Range("A7")             'On copie la cellule et on la colle en A7 de l'onglet Récap OR
            .PrintOut Copies:=1                 'On imprime
        End With
        Application.CutCopyMode = False
    Next xCell                                  'On passe à la cellule suivante
End Sub
@+ Lolote83
 

Discussions similaires

Réponses
3
Affichages
658

Statistiques des forums

Discussions
312 906
Messages
2 093 473
Membres
105 740
dernier inscrit
Mln