Imprimer certaines lignes selon un critere variable.

David R

XLDnaute Nouveau
Bonjour à tous,

Je cherche à compléter une macro d'edition, me permettant d'imprimer un récap avec plus ou moins de détail.
Cette macro actuelle, calcule un fichier assez lourd, met en forme et imprime le resultat des calculs pour la variable selectionnée, passe automatiquement à la variable suivant, édite et imprime, etc, etc.

Ma question est la suivante :

Comment faire pour que DEUX de ces criteres et uniquement eux, la plage A9:AP9 soit présente dans l'impression?

Parametres :
- L'élément variable est dans la cellule W3. Il s'agit de texte : FAB

Voici la Macro actuelle :

Sub Detail1()
Dim Plage As Range
Set PlageSheet = Worksheets("Table de calcul")
Set Plage = PlageSheet.Range("A3:A25")
'Definir la plage de codes service dans la boucle
Dim Var1
For Each Cell In Plage
'Boucle pour effectuer l'impression sur tous les codes services definis dans la plage
Var1 = Cell.Value
ActiveSheet.Range("W3") = Var1
Application.Calculation = xlManual
'Passer en calcul manuel apres le changement de code sur W3
ActiveSheet.Range("$A$8:$AT$305").AutoFilter Field:=21, Criteria1:="1"
ActiveSheet.Range("$A$8:$AT$312").AutoFilter Field:=19, Criteria1:="O"
ActiveSheet.Range("$A$8:$AT$312").AutoFilter Field:=20
'Critères pour les 3 filtres
Range("V1:AL312").Select
ActiveSheet.PageSetup.PrintArea = "$V$1:$AL$312"
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$8"
.PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = "$V$1:$AL$312"
'Definir la zone d'impression
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.BlackAndWhite = False
.FitToPagesWide = 1
.FitToPagesTall = 3
'options d'impression
End With
Application.PrintCommunication = True
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
'Impression
Application.Calculation = xlAutomatic
'repasser en calcul automatique pour la maj du reporting suivant
Next
End Sub

Merci beacoup de l'aide que vous pourrez m'apporter!

Cordialement,

David
 

David R

XLDnaute Nouveau
Re : Imprimer certaines lignes selon un critere variable.

Un petit UP, et quelques précisions sur ma demande d'aide, ainsi qu'une correction :

- J'imprime un tableau (V1:AL312) avec des lignes de detail, des sous totaux et totaux, d'ou les filtres de selections 19 20 et 21.
- la cellule W3 est une liste déroulante, me permettant de choisir une variable (un service), utilisée par le tableau pour récupérer les données via sommeprod.
-Il y a plusieurs variables, pour 2 d'entre elles : "FAB" et "CONDI", je souhaite que l'impression fasse apparaitre la ligne 9 de la plage d'impression (V1:AL312); pour les autres variables, non.

Pensez vous que cela puisse etre résolu par l'ajout d'un 4eme filtre? et comment faire en sorte que celui ci ne sois pris en compte dans la selection de la plage, que pour les 2 variables choisies, a l exclusion des autres ?

Merci d'avance pour qui prendra le temps de m'aider la dessus!

Bonne journée.

David
 

David R

XLDnaute Nouveau
Re : Imprimer certaines lignes selon un critere variable.

Je poste ici ma solution, qui finalement est bien plus simple sans modification de la macro :

Il suffisait pour les lignes en question de modifier les filtres (autofilter 19 à 21) pour que les lignes ne soien imprimées que lorsque la variable en W3 est celle choisie.

Si jamais quelqu'un a une amélioration a proposer du code de la macro tel que posté, ce sera le bienvenue!

Merci quand même!

Cdlt,
David
 

Discussions similaires

Statistiques des forums

Discussions
312 414
Messages
2 088 216
Membres
103 773
dernier inscrit
Palekor