Macro qui me remplit un onglet avec plusieurs pages avec entêtes et bas de pages

Phiphi27700

XLDnaute Nouveau
Bonsoir je joint un fichier excel pour une macro qui me copie une liste qui peux être de différentes longueurs.
Je pars d'une liste qui doit remplir grâce à une macro une feuille qui comporte des entêtes et des bas de page elle doit donc éviter le bas de page et continuer sur la page suivante
Merci
 

Pièces jointes

  • Test.xlsx
    117.2 KB · Affichages: 42
  • Test.xlsx
    117.2 KB · Affichages: 48
  • Test.xlsx
    117.2 KB · Affichages: 47

Staple1600

XLDnaute Barbatruc
Re : Macro qui me remplit un onglet avec plusieurs pages avec entêtes et bas de pages

Bonsoir à tous


Une proposition qui semble faire l'affaire.
Code:
Sub a()
Dim tAdr, i&, j&
tAdr = Array(11, 75, 139, 203)
j = 0
With Sheets("Liste")
    l = .Cells(Rows.Count, "F").End(xlUp).Row
    If l < 196 Then
    For i = 11 To l Step 49
        .Range(.Cells(i, "A"), .Cells(i, "F")).Resize(49).Copy
        Sheets("Liste vierge").Range("A" & tAdr(j)).PasteSpecial xlPasteValues
        j = j + 1
        Next
    End If
End With
End Sub
 

Phiphi27700

XLDnaute Nouveau
Re : Macro qui me remplit un onglet avec plusieurs pages avec entêtes et bas de pages

Bonjour et merci pour le code qui remplit presque ma demande il manque qu'il faudrait supprimer les pages non remplies exemple si la page 3 et 4 sont vide alors les supprimer
Merci
 

Staple1600

XLDnaute Barbatruc
Re : Macro qui me remplit un onglet avec plusieurs pages avec entêtes et bas de pages

Bonjour à tous

La précédente proposition modifiée selon ton dernier message.
VB:
Sub b()
Dim tAdr, i&, j&, x
tAdr = Array(11, 75, 139, 203)
j = 0
'recopie données
With Sheets("Liste")
    l = .Cells(Rows.Count, "F").End(xlUp).Row
    If l < 196 Then
    For i = 11 To l Step 49
        .Range(.Cells(i, "A"), .Cells(i, "F")).Resize(49).Copy
        Sheets("Liste vierge").Range("A" & tAdr(j)).PasteSpecial xlPasteValues
        j = j + 1
        Next
    End If
End With
'impression
With Sheets("Liste vierge")
x = (Len(.Range("F11")) > 0) + (Len(.Range("F75")) > 0) + (Len(.Range("F139")) > 0) + (Len(.Range("F203")) > 0)
.PageSetup.PrintTitleRows = "$1:$10"
.PageSetup.PrintArea = Choose(x * -1, "$A$1:$M$74", "$A$1:$M$138", "$A$1:$M$202", "$A$1:$M$266")
.PrintPreview lance l’aperçu avant impression
'commenter la ligne ci-dessus et décommenter la ligne ci-dessous pour imprimer
'.PrintOut
End With
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry