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
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