VBA: imprimer une liste par feuille.

pumbathekings

XLDnaute Junior
Bonjour à tous,

En plein travail sur excel, je rencontre des problèmes:

J'ai une feuilles avec différentes liste dessus (encadré orange). j'aimerai que quand je clique sur le bouton "PRINT", ces listes soient imprimées dans une feuille séparée à chaque fois (l'imprimante en réseau sera spécifiée plus tard).
Un code en boucle me permettrait de rajouter des listes et de les imprimer.

D'avance merci.

Pumba
 

Pièces jointes

  • printing.xlsm
    37.6 KB · Affichages: 36

pumbathekings

XLDnaute Junior
Re : VBA: imprimer une liste par feuille.

Bonjour,

Sur la feuille excel "Output", j'ai 4 listes collées à la suite (chacune des listes correspond à un encadré orange).
se que j'aimerai, c'est imprimer toutes ces listes sur une feuille indépendante pour chacune d'entre elle.

-> 4 listes = 4 feuilles imprimées.

Si il était possible de prévoir le rajout de listes dans le code, ca serait top.

J'espere t'avoir aiguillé.

Merci.

Pumba
 

don_pets

XLDnaute Occasionnel
Re : VBA: imprimer une liste par feuille.

Pardonne ma réponse tardive,

Voici selon moi la solution la plus simple à ta demande :

Code:
If Sheets("output").Range("b3") <> "" Then
Range("F2:B" & [B65536].End(xlUp).Row).Select
Selection.PrintPreview
End If

If Sheets("output").Range("g3") <> "" Then
Range("k2:G" & [g65536].End(xlUp).Row).Select
Selection.PrintPreview
End If

Ainsi c'est évolutif aisément, il te suffit en cas de nouveaux cadres, de copier coller le code ci-dessus et de remplacer les valeurs...

Interresting isn't ?
 

pumbathekings

XLDnaute Junior
Re : VBA: imprimer une liste par feuille.

Yes it is ...;)
j'ai quelque peu modifié ton code afin d'automatiser le code lorsqu'un tableau est rajouté mais il ne reconnait pas l'imprimante en réseau lorsque spécif.
Aurais tu une astuce pour cela?

Code:
Dim i As Long
For i = 4 To 180 Step 6

    With Cells(6, i).Resize(, 6).Rows("1:100")
       If Sheets("output").Cells(6, i) <> "" Then
        .PrintOut ActivePrinter:=
        End If
    End With
Next i
End Sub
 

Papou-net

XLDnaute Barbatruc
Re : VBA: imprimer une liste par feuille.

Bonsoir pumbathekings, don_pets, le forum,

Puisque je l'ai fait d'une façon différente, je joins le code à mettre dans le bouton Print:

Code:
Sub Bouton3_Cliquer()
Dim Cel As Range
For Each Cel In Rows(3).SpecialCells(xlCellTypeConstants)
  If Cel.Value = Range("B3") Then
    Cel.Offset(-1, 0).Resize(26, 5).PrintOut
  End If
Next
End Sub
Avec cette boucle, pas de modification de code quel que soit le nombre de tableaux en ligne.

Cordialement.
 

pumbathekings

XLDnaute Junior
Re : VBA: imprimer une liste par feuille.

Bonjour Papou et merci pour ta solution. comment pourrais-je faire afin que la zone d'impression s'adapte à tout le tableau?
(qu'il n'y ai q'une feuille imprimée par tableau meme ci celui si est trop large).
Merci
 

Papou-net

XLDnaute Barbatruc
Re : VBA: imprimer une liste par feuille.

Bonjour Papou et merci pour ta solution. comment pourrais-je faire afin que la zone d'impression s'adapte à tout le tableau?
(qu'il n'y ai q'une feuille imprimée par tableau meme ci celui si est trop large).
Merci

Bonjour pumbathekings, le Forum,

Comme sur la pièce jointe en annexe, si j'ai bien compris la demande.

Pour tester, j'ai écrit:

Code:
Cel.Offset(-1, 0).Resize(26, 5).PrintPreview
Si ça te convient, tu n'auras qu'à remplacer par:

Code:
Cel.Offset(-1, 0).Resize(26, 5).PrintOut

Cordialement.
 

Pièces jointes

  • Copie de printing-1.xlsm
    38.8 KB · Affichages: 33

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 835
Membres
103 972
dernier inscrit
steeter