XL 2010 Dupliquer une plage plusieurs fois et imprimer

aurelio.ewane

XLDnaute Occasionnel
Bonjour la Team
content de vous lire.
jai un fichier ou je trouve d'énorme difficultés jepositive1986@

jai deux feuilles
une feuille Base ou se trouve des données
et une feuille bulletins

je voudrais imprimer tous les bulletins dans un seul PDf pour cela je voudrais copier le bulletins modèle et le copier sur lea gauche le nombre de fois egale au nombre de Bulletins
nous allons par exemple supposer 50 et en incrémentant la plage et en faisant un saut de page.
Par exemple
la plage modèle est A1:AJ103

les autres Bulletins doivent etre copiées en
AK1:BT103 avec un saut de page à BT
BU1:DD103 avec un saut de page en DD et ainsi de suite

et ensuite imprimer tous ces Bulletins dans un seul PDf en à la fin supprimer toutes les copies et ne rester qu'avec la plage A1:AJ103


Je vous joins mon fichier

Cordialement


Pièces jointes​

 

Pièces jointes

  • BulletinsAide.xlsm
    489.4 KB · Affichages: 4

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Ca ressemble un peu à ça :

N'est-il pas ?
 

aurelio.ewane

XLDnaute Occasionnel
Bonjour,

Ca ressemble un peu à ça :

N'est-il pas ?
jarrive pas a trouver de solution
 

aurelio.ewane

XLDnaute Occasionnel
On a compris que tu veux imprimer plusieurs bulletins dans un seul et unique PDF.

Mais ce que perso je ne comprends pas, c'est comment sont construits ces différents bulletins.
Où sont les données des bulletins ?
Où est la macro qui remplies les bulletins ?
etc.
Il ya une base de données qui contient les noms des eleves et les notes
cette Feuille sappelle Base
la feuille Bulletins contient un modèle de bulletin qui contient des forumules qui qui permettent ) partir du matricule et de la classe ainsi que de la sequence d'aller rechercher les notes..
la dessus pas de problème.

mon soucis cest que je voudrais copier cette plage de bulletins A1:Aj103 et la coller un certain nombre de fois a a gauche en respectant les largeurs des colonnes et en mettant des saut de pages chaque fois pour que je puisse imprimer sans coupure..

mon objectif c'est d'imprimer tous les bulletins dans un seul PDF

Merci si vous avez des Solutions
jai meme penser à copier/deplacer cette feuille un certain nombre de fois mais je narrive pas
 

Phil69970

XLDnaute Barbatruc
@aurelio.ewane

Il faut lire et comprendre les réponses que l'on te fait.

On a compris que tu veux imprimer plusieurs bulletins dans un seul et unique PDF.

Pose toi la question pourquoi il n'y a pas de réponse ?

Demande incompréhensible ?

Fichier incompréhensible ? <== c'est ici ton problème

Ou bien un mélange des 2 ???

Mais ce que perso je ne comprends pas, c'est comment sont construits ces différents bulletins.
Où sont les données des bulletins ?
Où est la macro qui remplies les bulletins ?

Et à quoi cela sert d'avoir un fichier pdf avec les 50 bulletins dessus ?
 

patricktoulon

XLDnaute Barbatruc
Bonjour
ho! punaise
je vais me contenter de te donner un exemple de mécanique simple pour multiplier test tableau bulletin avec sauts de page
car ta base c'est un beau heu..comment dire heu.... :rolleyes: 😅

VB:
Option Explicit
Sub nettoie()
    nettoyage
End Sub
Function nettoyage()
    With Sheets("bulletins")
        .Cells(1, "AJ").Resize(, .UsedRange.Columns.Count).EntireColumn.Delete Shift:=xlToLeft

        Do While .UsedRange.Cells(1, .UsedRange.Cells.Count).Column = .Cells(1, "AI").Column: DoEvents: Loop
    End With
    nettoyage = True
End Function

Sub createBulletin()
    Dim X As Boolean, NbCopY&, plage As Range, NbCol&, CoL1&, LargeurCol&, C&, NewPlage As Range
    X = nettoyage
    Application.ScreenUpdating = False
    NbCopY = 20

    Set plage = [Bulletins!L1:AI93]
    NbCol = plage.Columns.Count
    CoL1 = [AJ1].Column
    LargeurCol = [Bulletins!L1].Width
    DoEvents
    For C = 1 To NbCopY
        plage.Copy Destination:=Cells(1, CoL1)
        ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=Cells(1, CoL1)
        CoL1 = CoL1 + NbCol
        Set NewPlage = Sheets("Bulletins").Cells(1, CoL1).Resize(plage.Rows.Count, plage.Columns.Count)

        With NewPlage
            'on peut remplir le nouveau bulletin
            '.cells(x,y)=bidule
            'etc...
            '...


        End With

    Next
    ActiveSheet.UsedRange.ColumnWidth = [Bulletins!L:L].ColumnWidth
    ActiveSheet.PageSetup.PrintArea = Sheets("bulletins").Range(Cells(1, "L"), Cells(93, plage.Columns.Count * NbCopY)).Resize(93).Address
End Sub
 

Pièces jointes

  • BulletinsAide.xlsm
    431.7 KB · Affichages: 3

aurelio.ewane

XLDnaute Occasionnel
Bonjour
ho! punaise
je vais me contenter de te donner un exemple de mécanique simple pour multiplier test tableau bulletin avec sauts de page
car ta base c'est un beau heu..comment dire heu.... :rolleyes: 😅

VB:
Option Explicit
Sub nettoie()
    nettoyage
End Sub
Function nettoyage()
    With Sheets("bulletins")
        .Cells(1, "AJ").Resize(, .UsedRange.Columns.Count).EntireColumn.Delete Shift:=xlToLeft

        Do While .UsedRange.Cells(1, .UsedRange.Cells.Count).Column = .Cells(1, "AI").Column: DoEvents: Loop
    End With
    nettoyage = True
End Function

Sub createBulletin()
    Dim X As Boolean, NbCopY&, plage As Range, NbCol&, CoL1&, LargeurCol&, C&, NewPlage As Range
    X = nettoyage
    Application.ScreenUpdating = False
    NbCopY = 20

    Set plage = [Bulletins!L1:AI93]
    NbCol = plage.Columns.Count
    CoL1 = [AJ1].Column
    LargeurCol = [Bulletins!L1].Width
    DoEvents
    For C = 1 To NbCopY
        plage.Copy Destination:=Cells(1, CoL1)
        ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=Cells(1, CoL1)
        CoL1 = CoL1 + NbCol
        Set NewPlage = Sheets("Bulletins").Cells(1, CoL1).Resize(plage.Rows.Count, plage.Columns.Count)

        With NewPlage
            'on peut remplir le nouveau bulletin
            '.cells(x,y)=bidule
            'etc...
            '...


        End With

    Next
    ActiveSheet.UsedRange.ColumnWidth = [Bulletins!L:L].ColumnWidth
    ActiveSheet.PageSetup.PrintArea = Sheets("bulletins").Range(Cells(1, "L"), Cells(93, plage.Columns.Count * NbCopY)).Resize(93).Address
End Sub
mrciiiiiiiiiii je vais regarder
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour

réponse au MP: si c'est juste la duplication du bulletin alors ce que je t'ai donné fait parfaitement l'affaire
il te suffit de changer 20 pour plus si tu en veux plus (dans la limite des colonnes dispo bien evidemment
il te suffira de l'enregistrer cette feuille en pdf pour avoir chaque bulletins dans une page
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 139
Membres
112 669
dernier inscrit
Guigui2502