Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro d'impression

4 réponses
Avatar
marcus
Bonjour à vous tous
Je suis à la recherche d'une macro d'impression qui me permettra d'imprimer,
à chaque changement de nom (dans mon exemple, colonne B) sur des pages
différentes. Par contre, je veux imprimer le document au complet, mais sur
des pages différentes pour chacun des noms.

si j'ai dans la colonne B les noms suivants
Julie
Julie
Julie
Karine
Karine
alors j'aimerais imprimer toute les données de Julie sur un même document,
tout en imprimant Karine sur un autre document. Dans la vie, mon fichier
contient 5000 lignes et il est appellé à grossir, cela ajoutera des lignes
supplémentaires.

Voici mon lien pour mieux comprendre
http://cjoint.com/?kedQEQLNZI

Merci de votre aide

Marc

4 réponses

Avatar
MichDenis
A ) tu copies la macro dans un module standard de ton classeur
B ) Tu dois adapter le nom de la feuille dans la procédure
With Worksheets("Feuil1") 'Adapte le nom de la feuille

C ) Lorsque le tout sera Ok, tu changeras la commande
PrintPreview pour PrintOut (voir dans l'aide, les paramètres
de la méthode au besoin

D ) Avant de lancer l'impression, utilise la commande
Barre des menus / fichier / Mise en page...
Et détermine le type de mise en page que tu désires
Disposition , en-tête et pied de page ....
Lorsque tout sera Ok, tu enregistre ton fichier.
Chacune des pages que tu imprimeras aura cette mise en page.


'-----------------------------------------
Sub Test()

Dim Rg As Range
Set sh = Worksheets.Add
With Worksheets("Feuil1") 'Adapte le nom de la feuille
With .Range("B1:B" & .Range("B65536").End(xlUp).Row)
.AdvancedFilter xlFilterCopy, , sh.Range("A1"), True
Set Rg = sh.Range("A1:A" & sh.Range("A65536").End(xlUp).Row)
sh.Range("B1") = Worksheets("Feuil1").Range("B1")
For a = 2 To Rg.Cells.Count
sh.Range("B2") = sh.Range("A" & a)
.AdvancedFilter xlFilterInPlace, sh.Range("B1:B2")
.Offset(, -1).Resize(, 4).PrintPreview
Next
End With
.ShowAllData
End With
Application.DisplayAlerts = False
sh.Delete
Application.DisplayAlerts = True

End Sub
'-----------------------------------------








"marcus" a écrit dans le message de news:

Bonjour à vous tous
Je suis à la recherche d'une macro d'impression qui me permettra d'imprimer,
à chaque changement de nom (dans mon exemple, colonne B) sur des pages
différentes. Par contre, je veux imprimer le document au complet, mais sur
des pages différentes pour chacun des noms.

si j'ai dans la colonne B les noms suivants
Julie
Julie
Julie
Karine
Karine
alors j'aimerais imprimer toute les données de Julie sur un même document,
tout en imprimant Karine sur un autre document. Dans la vie, mon fichier
contient 5000 lignes et il est appellé à grossir, cela ajoutera des lignes
supplémentaires.

Voici mon lien pour mieux comprendre
http://cjoint.com/?kedQEQLNZI

Merci de votre aide

Marc
Avatar
MichDenis
J'ai ajouté à la procédure une ligne de code :

Sub Test()

Dim Rg As Range
Application.ScreenUpdating = False
Set sh = Worksheets.Add
With Worksheets("Feuil1") 'Adapte le nom de la feuille
With .Range("B1:B" & .Range("B65536").End(xlUp).Row)
.AdvancedFilter xlFilterCopy, , sh.Range("A1"), True
Set Rg = sh.Range("A1:A" & sh.Range("A65536").End(xlUp).Row)
sh.Range("B1") = Worksheets("Feuil1").Range("B1")
For a = 2 To Rg.Cells.Count
sh.Range("B2") = sh.Range("A" & a)
.AdvancedFilter xlFilterInPlace, sh.Range("B1:B2")
.Offset(, -1).Resize(, 4).PrintPreview
Next
End With
.ShowAllData
End With
Application.DisplayAlerts = False
sh.Delete
Application.DisplayAlerts = True

End Sub
Avatar
JB
Bonjour,

http://cjoint.com/?kek2muAc37


Sub SautPage1()
ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
ActiveSheet.ResetAllPageBreaks ' raz
i = 2
Do While i < [A65000].End(xlUp).Row
m = Cells(i, 2)
Do While Cells(i, 2) = m
i = i + 1
Loop
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:Îlls(i, 2)
Loop
ActiveSheet.PrintPreview
End Sub

http://boisgontierjacques.free.fr/pages_site/editions.htm#SPGroupe


JB
http://boisgontierjacques.free.fr/



On 4 oct, 03:51, marcus wrote:
Bonjour à vous tous
Je suis à la recherche d'une macro d'impression qui me permettra d'impr imer,
à chaque changement de nom (dans mon exemple, colonne B) sur des pages
différentes. Par contre, je veux imprimer le document au complet, mais sur
des pages différentes pour chacun des noms.

si j'ai dans la colonne B les noms suivants
Julie
Julie
Julie
Karine
Karine
alors j'aimerais imprimer toute les données de Julie sur un même docu ment,
tout en imprimant Karine sur un autre document. Dans la vie, mon fichier
contient 5000 lignes et il est appellé à grossir, cela ajoutera des l ignes
supplémentaires.

Voici mon lien pour mieux comprendre
http://cjoint.com/?kedQEQLNZI

Merci de votre aide

Marc


Avatar
marcus
Bonjour JB et MichDenis

Merci à vous deux pour votre aide

Bonne journée

Marc


Bonjour,

http://cjoint.com/?kek2muAc37


Sub SautPage1()
ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
ActiveSheet.ResetAllPageBreaks ' raz
i = 2
Do While i < [A65000].End(xlUp).Row
m = Cells(i, 2)
Do While Cells(i, 2) = m
i = i + 1
Loop
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:Îlls(i, 2)
Loop
ActiveSheet.PrintPreview
End Sub

http://boisgontierjacques.free.fr/pages_site/editions.htm#SPGroupe


JB
http://boisgontierjacques.free.fr/



On 4 oct, 03:51, marcus wrote:
Bonjour à vous tous
Je suis à la recherche d'une macro d'impression qui me permettra d'imprimer,
à chaque changement de nom (dans mon exemple, colonne B) sur des pages
différentes. Par contre, je veux imprimer le document au complet, mais sur
des pages différentes pour chacun des noms.

si j'ai dans la colonne B les noms suivants
Julie
Julie
Julie
Karine
Karine
alors j'aimerais imprimer toute les données de Julie sur un même document,
tout en imprimant Karine sur un autre document. Dans la vie, mon fichier
contient 5000 lignes et il est appellé à grossir, cela ajoutera des lignes
supplémentaires.

Voici mon lien pour mieux comprendre
http://cjoint.com/?kedQEQLNZI

Merci de votre aide

Marc