XL 2013 Impression auto par rapport à une liste

candido57

XLDnaute Occasionnel
Bonjour,

J'ai une liste avec des noms de 1 à 9 dans la feuille "Donnée A2:A10". Dans la feuille "Base", en B4, je souhaiterais que cette cellule passe de 1,2,3 et ainsi de suite et que la fiche s'imprimée jusqu'à la fin de la liste , c'est à dire 9.
N°1 impression, N°2 impression et ainsi de suite ... Jusqu'à 9 (Ma liste sera plus longue).
Actuellement , je change le numéro en B4 et j'imprime avec le bouton imprimante page par page.
Merci d'avance
 

Pièces jointes

  • Formulaire .xlsm
    53 KB · Affichages: 3
Solution
Exact, il manque un "+1" à cause de la ligne des titres.
Dans la PJ j'ai remplacé le Print par un msgbox. Quand ça marchera il suffira d'inverser les commentaires;
Par contre je vais bien jusqu'à la dernière feuille, la 9.
VB:
Sub Imprimante_Click()
    Dim Ligne%, DL%
    Application.ScreenUpdating = False
    DL = Sheets("Donnée").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    If [B4] = "" Then NumB4 = 1 Else NumB4 = [B4]
    For Ligne = NumB4 + 1 To DL
        [B4] = Sheets("Donnée").Cells(Ligne, "A")
        Calculate
        'ActiveSheet.PrintOut
        MsgBox "Impression feuille : " & [B4]
    Next Ligne
End Sub

NB:
XLD est un site d'échange mais aussi une vaste base de données, alors soyez compréhensif quand on vous demande...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Candido,
Un essai en PJ avec :
VB:
Sub Imprimante_Click()
    Dim Ligne%, DL%
    Application.ScreenUpdating = False
    DL = Sheets("Donnée").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    For Ligne = 2 To DL
        [B4] = Sheets("Donnée").Cells(Ligne, "A")
        Calculate
        ActiveSheet.PrintOut
    Next Ligne
End Sub
Ainsi les N° en colonne A de Donnée peuvent ne pas se suivre, ce qui est plus sécure que d'exiger que les N° se suivent.
 

Pièces jointes

  • Formulaire .xlsm
    53 KB · Affichages: 2

candido57

XLDnaute Occasionnel
Bonjour Candido,
Un essai en PJ avec :
VB:
Sub Imprimante_Click()
    Dim Ligne%, DL%
    Application.ScreenUpdating = False
    DL = Sheets("Donnée").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    For Ligne = 2 To DL
        [B4] = Sheets("Donnée").Cells(Ligne, "A")
        Calculate
        ActiveSheet.PrintOut
    Next Ligne
End Sub
Ainsi les N° en colonne A de Donnée peuvent ne pas se suivre, ce qui est plus sécure que d'exiger que les N° se suivent.
Bonjour,
J'ai essayé en mettant PrintPreview pour ne pas imprimer. Lorsque j'exécute la macro B4 passe de 1 à 9. Ma question est, est ce que le N° s'agrémente en passant de 1 à 2 , 2 à 3 etc.. et chaque fois il imprime les 9 feuilles ou jusqu'à la fin de la liste si j'ai plus de nom? Il faut savoir que par rapport au numéro, j'ai une format conditionnel qui change par rapport à ce numéro en B4 (Base).
Lorsque je lance la macro je ne le vois pas.
merci
 

candido57

XLDnaute Occasionnel
Bonjour,
J'ai essayé en mettant PrintPreview pour ne pas imprimer. Lorsque j'exécute la macro B4 passe de 1 à 9. Ma question est, est ce que le N° s'agrémente en passant de 1 à 2 , 2 à 3 etc.. et chaque fois il imprime les 9 feuilles ou jusqu'à la fin de la liste si j'ai plus de nom? Il faut savoir que par rapport au numéro, j'ai une format conditionnel qui change par rapport à ce numéro en B4 (Base).
Lorsque je lance la macro je ne le vois pas.
merci
Re Bonjour,
j'ai réduit la liste et j'ai imprimer (Moins de gaspillage). Ça fonctionne, c'est ce que je voulais .

Merci beaucoup
 

candido57

XLDnaute Occasionnel
Bonjour Candido,
Un essai en PJ avec :
VB:
Sub Imprimante_Click()
    Dim Ligne%, DL%
    Application.ScreenUpdating = False
    DL = Sheets("Donnée").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    For Ligne = 2 To DL
        [B4] = Sheets("Donnée").Cells(Ligne, "A")
        Calculate
        ActiveSheet.PrintOut
    Next Ligne
End Sub
Ainsi les N° en colonne A de Donnée peuvent ne pas se suivre, ce qui est plus sécure que d'exiger que les N° se suivent.
Bonjour,
La macro fonctionne si je veux imprimer toute la liste par exemple du n° 1 à 100.
Mais si j'imprime ma liste au fur et à mesure, exemple de 1 à 20 et que je veux reprendre au n° 21 (je saisi 21 dans cellule B4 (Base), je souhaiterais imprimer jusqu'à la fin de la liste de 21 à 100. Actuellement, si je saisi par exemple 21 en B4, il m'imprime à partir de 1 (Toute la liste)
Est ce possible de modifier un peu la macro pour je puisse imprimer à partir du n° 21 et de ne prendre pas en compte de 1 à 20?

Merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Je ne pense pas que le post #3 en vert soit la bonne réponse. Supprimez cette couleur car cet item remonte juste après la première demande pour signifier où ce trouve la solution. dans l'état le futur lecteur sera dans l'expectative.

D'autre part, ma macro ne fait que ce qui était demandé.
J'ai une liste avec des noms de 1 à 9 dans la feuille "Donnée A2:A10". Dans la feuille "Base", en B4, je souhaiterais que cette cellule passe de 1,2,3 et ainsi de suite et que la fiche s'imprimée jusqu'à la fin de la liste , c'est à dire 9.
Si j'ai bien compris cette nouvelle demande, il faut imprimer de la feuille dont le N° est déjà en B4 jusqu'à la fin ?
Si c'est ça essayez :
VB:
Sub Imprimante_Click()
    Dim Ligne%, DL%
    Application.ScreenUpdating = False
    DL = Sheets("Donnée").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    If [B4] = "" Then NumB4 = 1 Else NumB4 = [B4]
    For Ligne = NumB4 To DL
        [B4] = Sheets("Donnée").Cells(Ligne, "A")
        Calculate
        ActiveSheet.PrintOut
    Next Ligne
End Sub
Si B4 est vide, on commence à 1 sinon on commence au N° écrit en B4.
 

candido57

XLDnaute Occasionnel
Bonsoir,
Je ne pense pas que le post #3 en vert soit la bonne réponse. Supprimez cette couleur car cet item remonte juste après la première demande pour signifier où ce trouve la solution. dans l'état le futur lecteur sera dans l'expectative.

D'autre part, ma macro ne fait que ce qui était demandé.

Si j'ai bien compris cette nouvelle demande, il faut imprimer de la feuille dont le N° est déjà en B4 jusqu'à la fin ?
Si c'est ça essayez :
VB:
Sub Imprimante_Click()
    Dim Ligne%, DL%
    Application.ScreenUpdating = False
    DL = Sheets("Donnée").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    If [B4] = "" Then NumB4 = 1 Else NumB4 = [B4]
    For Ligne = NumB4 To DL
        [B4] = Sheets("Donnée").Cells(Ligne, "A")
        Calculate
        ActiveSheet.PrintOut
    Next Ligne
End Sub
Si B4 est vide, on commence à 1 sinon on commence au N° écrit en B4.
Bonjour ,
oui c'est ça , je viens essayer en faisant un print à partir de N° 8 en B4, il imprime 7 -8 -9 au lieu de 8 et 9.
Par contre l'impression s'arrête en plein milieu et ne m'imprime pas le reste.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
il imprime 7 -8 -9 au lieu de 8 et 9.
Exact, il manque un "+1" à cause de la ligne des titres.
Dans la PJ j'ai remplacé le Print par un msgbox. Quand ça marchera il suffira d'inverser les commentaires;
Par contre je vais bien jusqu'à la dernière feuille, la 9.
VB:
Sub Imprimante_Click()
    Dim Ligne%, DL%
    Application.ScreenUpdating = False
    DL = Sheets("Donnée").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    If [B4] = "" Then NumB4 = 1 Else NumB4 = [B4]
    For Ligne = NumB4 + 1 To DL
        [B4] = Sheets("Donnée").Cells(Ligne, "A")
        Calculate
        'ActiveSheet.PrintOut
        MsgBox "Impression feuille : " & [B4]
    Next Ligne
End Sub

NB:
XLD est un site d'échange mais aussi une vaste base de données, alors soyez compréhensif quand on vous demande de rendre plus lisible votre fil,
Je ne pense pas que le post #3 en vert soit la bonne réponse. Supprimez cette couleur car cet item remonte juste après la première demande pour signifier où ce trouve la solution. dans l'état le futur lecteur sera dans l'expectative.
 

Pièces jointes

  • Formulaire (1).xlsm
    52.9 KB · Affichages: 0

candido57

XLDnaute Occasionnel
Exact, il manque un "+1" à cause de la ligne des titres.
Dans la PJ j'ai remplacé le Print par un msgbox. Quand ça marchera il suffira d'inverser les commentaires;
Par contre je vais bien jusqu'à la dernière feuille, la 9.
VB:
Sub Imprimante_Click()
    Dim Ligne%, DL%
    Application.ScreenUpdating = False
    DL = Sheets("Donnée").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    If [B4] = "" Then NumB4 = 1 Else NumB4 = [B4]
    For Ligne = NumB4 + 1 To DL
        [B4] = Sheets("Donnée").Cells(Ligne, "A")
        Calculate
        'ActiveSheet.PrintOut
        MsgBox "Impression feuille : " & [B4]
    Next Ligne
End Sub

NB:
XLD est un site d'échange mais aussi une vaste base de données, alors soyez compréhensif quand on vous demande de rendre plus lisible votre fil,
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Je pense que Phil fait référence à ce qui a été dit au post #6 et au post #8 :

NB:
XLD est un site d'échange mais aussi une vaste base de données, alors soyez compréhensif quand on vous demande de rendre plus lisible votre fil,
Je ne pense pas que le post #3 en vert soit la bonne réponse. Supprimez cette couleur car cet item remonte juste après la première demande pour signifier où ce trouve la solution. dans l'état le futur lecteur sera dans l'expectative.
 

candido57

XLDnaute Occasionnel
Bonjour,
J'ai un tout petit problème avec le fichier ,lorsque je saisi 120, il imprime à partir de 140.
Il faut savoir que les numéros ne se suivent pas , on peut passer de 120 à 135 ensuite 140 car lorsque j'extraits les personnes, il y a des personnes non accepté, donc ces dernières ne sont pas dans cette liste. Il peut y avoir des chiffres qui passe de de 48 à 50 ou de 120 à 135 (voir fichier)
Merci
 

Pièces jointes

  • Formulaire test .xlsm
    59 KB · Affichages: 0

candido57

XLDnaute Occasionnel
Alors recherchez sur quelle ligne se trouve la valeur en B4 plutôt que d'utiliser ce nombre comme N° de ligne.
J'essaie de comprendre ce que tu me dis , mais comme je suis nul en macro, je plane une peu.
En tout les cas, ça fonctionne très bien à partir de 1 et ça m'imprime toute la liste correctement jusqu'à 147.
Peux tu m'aider s'il te plait ?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 263
Membres
103 167
dernier inscrit
miriame