-----Message d'origine-----
Bonjour Freedo,
Je n'ai pas le temps de lire tout ce code ... mais le
principe est le suivant :
Si tu as pris soin de laisser au MOINS UNE LIGNE entre
copie du résultat de tes filtres sur la feuille "Résultats"
Voici ce que pourrait avoir l'air ta macro :
'-------------------------------
Sub Imprimer()
Dim Rg As Range
With Worksheets("àFacturer ") ' à Déterminer
Set Rg = .UsedRange.SpecialCells(xlCellTypeConstants)
For Each area In Rg.Areas
.PageSetup.PrintArea = area.Address
.PrintPreview 'or .Printout avec paramètres
désirés
'Tu lances l'impression avant cette ligne de code
.PageSetup.PrintArea = ""
Next
End With
Set Rg = Nothing
End Sub
'-------------------------------
Salutations!
"Freedo" a
écrit dans le message de
news:0aae01c3a470$ede7cdf0$
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================== =================
2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
Bonjour Freedo,
Je n'ai pas le temps de lire tout ce code ... mais le
principe est le suivant :
Si tu as pris soin de laisser au MOINS UNE LIGNE entre
copie du résultat de tes filtres sur la feuille "Résultats"
Voici ce que pourrait avoir l'air ta macro :
'-------------------------------
Sub Imprimer()
Dim Rg As Range
With Worksheets("àFacturer ") ' à Déterminer
Set Rg = .UsedRange.SpecialCells(xlCellTypeConstants)
For Each area In Rg.Areas
.PageSetup.PrintArea = area.Address
.PrintPreview 'or .Printout avec paramètres
désirés
'Tu lances l'impression avant cette ligne de code
.PageSetup.PrintArea = ""
Next
End With
Set Rg = Nothing
End Sub
'-------------------------------
Salutations!
"Freedo" <freedo.anonymous@discussions.microsoft.com> a
écrit dans le message de
news:0aae01c3a470$ede7cdf0$a601280a@phx.gbl...
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================== =================
2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
Bonjour Freedo,
Je n'ai pas le temps de lire tout ce code ... mais le
principe est le suivant :
Si tu as pris soin de laisser au MOINS UNE LIGNE entre
copie du résultat de tes filtres sur la feuille "Résultats"
Voici ce que pourrait avoir l'air ta macro :
'-------------------------------
Sub Imprimer()
Dim Rg As Range
With Worksheets("àFacturer ") ' à Déterminer
Set Rg = .UsedRange.SpecialCells(xlCellTypeConstants)
For Each area In Rg.Areas
.PageSetup.PrintArea = area.Address
.PrintPreview 'or .Printout avec paramètres
désirés
'Tu lances l'impression avant cette ligne de code
.PageSetup.PrintArea = ""
Next
End With
Set Rg = Nothing
End Sub
'-------------------------------
Salutations!
"Freedo" a
écrit dans le message de
news:0aae01c3a470$ede7cdf0$
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================== =================
2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
Bonjour,
ci-joint un code qui devrait peut être t'aider.
j'ai un fichier dont je dois effectuer des impressions
filtrées en fonction
des colonnes 1 et 2
' IMPRESSION DES FEUILLES
For i = 5 To 15
Selection.AutoFilter Field:=1, Criteria1:Îlls(i,
18)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=1, Criteria1:="="
Selection.AutoFilter Field:=2, Criteria1:="<>"
For i = 5 To 12
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2, Criteria1:Îlls(i, 19)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
cells(311,2) est un sous.total de la colonne.
vàlà missieu. j'espère pouvoir t'aider
Hervé
"Freedo" a
écrit dans le
message de news:0aae01c3a470$ede7cdf0$
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================== =================
2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
Bonjour,
ci-joint un code qui devrait peut être t'aider.
j'ai un fichier dont je dois effectuer des impressions
filtrées en fonction
des colonnes 1 et 2
' IMPRESSION DES FEUILLES
For i = 5 To 15
Selection.AutoFilter Field:=1, Criteria1:=Cells(i,
18)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=1, Criteria1:="="
Selection.AutoFilter Field:=2, Criteria1:="<>"
For i = 5 To 12
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2, Criteria1:=Cells(i, 19)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
cells(311,2) est un sous.total de la colonne.
vàlà missieu. j'espère pouvoir t'aider
Hervé
"Freedo" <freedo.anonymous@discussions.microsoft.com> a
écrit dans le
message de news:0aae01c3a470$ede7cdf0$a601280a@phx.gbl...
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================== =================
2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
Bonjour,
ci-joint un code qui devrait peut être t'aider.
j'ai un fichier dont je dois effectuer des impressions
filtrées en fonction
des colonnes 1 et 2
' IMPRESSION DES FEUILLES
For i = 5 To 15
Selection.AutoFilter Field:=1, Criteria1:Îlls(i,
18)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=1, Criteria1:="="
Selection.AutoFilter Field:=2, Criteria1:="<>"
For i = 5 To 12
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2, Criteria1:Îlls(i, 19)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
cells(311,2) est un sous.total de la colonne.
vàlà missieu. j'espère pouvoir t'aider
Hervé
"Freedo" a
écrit dans le
message de news:0aae01c3a470$ede7cdf0$
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================== =================
2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
Bonjour Freedo,
Je n'ai pas le temps de lire tout ce code ... mais le
principe est le suivant :
Si tu as pris soin de laisser au MOINS UNE LIGNE entre
copie du résultat de tes filtres sur la feuille "Résultats"
Voici ce que pourrait avoir l'air ta macro :
'-------------------------------
Sub Imprimer()
Dim Rg As Range
With Worksheets("àFacturer ") ' à Déterminer
Set Rg = .UsedRange.SpecialCells(xlCellTypeConstants)
For Each area In Rg.Areas
.PageSetup.PrintArea = area.Address
.PrintPreview 'or .Printout avec paramètres
désirés
'Tu lances l'impression avant cette ligne de code
.PageSetup.PrintArea = ""
Next
End With
Set Rg = Nothing
End Sub
'-------------------------------
Salutations!
"Freedo" a
écrit dans le message de
news:0aae01c3a470$ede7cdf0$
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================================== >2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
Bonjour Freedo,
Je n'ai pas le temps de lire tout ce code ... mais le
principe est le suivant :
Si tu as pris soin de laisser au MOINS UNE LIGNE entre
copie du résultat de tes filtres sur la feuille "Résultats"
Voici ce que pourrait avoir l'air ta macro :
'-------------------------------
Sub Imprimer()
Dim Rg As Range
With Worksheets("àFacturer ") ' à Déterminer
Set Rg = .UsedRange.SpecialCells(xlCellTypeConstants)
For Each area In Rg.Areas
.PageSetup.PrintArea = area.Address
.PrintPreview 'or .Printout avec paramètres
désirés
'Tu lances l'impression avant cette ligne de code
.PageSetup.PrintArea = ""
Next
End With
Set Rg = Nothing
End Sub
'-------------------------------
Salutations!
"Freedo" <freedo.anonymous@discussions.microsoft.com> a
écrit dans le message de
news:0aae01c3a470$ede7cdf0$a601280a@phx.gbl...
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================================== >2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
Bonjour Freedo,
Je n'ai pas le temps de lire tout ce code ... mais le
principe est le suivant :
Si tu as pris soin de laisser au MOINS UNE LIGNE entre
copie du résultat de tes filtres sur la feuille "Résultats"
Voici ce que pourrait avoir l'air ta macro :
'-------------------------------
Sub Imprimer()
Dim Rg As Range
With Worksheets("àFacturer ") ' à Déterminer
Set Rg = .UsedRange.SpecialCells(xlCellTypeConstants)
For Each area In Rg.Areas
.PageSetup.PrintArea = area.Address
.PrintPreview 'or .Printout avec paramètres
désirés
'Tu lances l'impression avant cette ligne de code
.PageSetup.PrintArea = ""
Next
End With
Set Rg = Nothing
End Sub
'-------------------------------
Salutations!
"Freedo" a
écrit dans le message de
news:0aae01c3a470$ede7cdf0$
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================================== >2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
Bonjour,
ci-joint un code qui devrait peut être t'aider.
j'ai un fichier dont je dois effectuer des impressions
filtrées en fonction
des colonnes 1 et 2
' IMPRESSION DES FEUILLES
For i = 5 To 15
Selection.AutoFilter Field:=1, Criteria1:Îlls(i,
18)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=1, Criteria1:="="
Selection.AutoFilter Field:=2, Criteria1:="<>"
For i = 5 To 12
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2, Criteria1:Îlls(i, 19)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
cells(311,2) est un sous.total de la colonne.
vàlà missieu. j'espère pouvoir t'aider
Hervé
"Freedo" a
écrit dans le
message de news:0aae01c3a470$ede7cdf0$
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================================== >2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
Bonjour,
ci-joint un code qui devrait peut être t'aider.
j'ai un fichier dont je dois effectuer des impressions
filtrées en fonction
des colonnes 1 et 2
' IMPRESSION DES FEUILLES
For i = 5 To 15
Selection.AutoFilter Field:=1, Criteria1:Îlls(i,
18)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=1, Criteria1:="="
Selection.AutoFilter Field:=2, Criteria1:="<>"
For i = 5 To 12
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2, Criteria1:Îlls(i, 19)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
cells(311,2) est un sous.total de la colonne.
vàlà missieu. j'espère pouvoir t'aider
Hervé
"Freedo" <freedo.anonymous@discussions.microsoft.com> a
écrit dans le
message de news:0aae01c3a470$ede7cdf0$a601280a@phx.gbl...
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================================== >2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
Bonjour,
ci-joint un code qui devrait peut être t'aider.
j'ai un fichier dont je dois effectuer des impressions
filtrées en fonction
des colonnes 1 et 2
' IMPRESSION DES FEUILLES
For i = 5 To 15
Selection.AutoFilter Field:=1, Criteria1:Îlls(i,
18)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=1, Criteria1:="="
Selection.AutoFilter Field:=2, Criteria1:="<>"
For i = 5 To 12
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2, Criteria1:Îlls(i, 19)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
cells(311,2) est un sous.total de la colonne.
vàlà missieu. j'espère pouvoir t'aider
Hervé
"Freedo" a
écrit dans le
message de news:0aae01c3a470$ede7cdf0$
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================================== >2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
-----Message d'origine-----
re-.
je m'explique
j'ai un tableau avec en colonne a des N° de camions, et
en colonne b des
transporteurs
ce tableau comporte aussi des colis, poids et montants
facturés.
le but de la manoeuvre est d'effectuer un tri par camion
quelque soit le
transporteur, ensuite un tri par transporteur quelque
soit le camion a
fin d'afficher et d'imprimer le ca réalisé par camion
qqsoit le
transporteur, et le ca par transporteur qqsoit le camion.
j'ai donc repris la meme procédure d'enregistrement que
toi en ajoutant une
boucle pour passer en revue tous les camions et tous les
transporteurs.
la diff est que je dispose d"un champ reprenant tous les
n° des camions, et
d'un autre reprenant tous les noms des transporteurs.
le nb de camion est connu. j'extrais le n° du camion
dans ce champ puis
j'effectue mon tri. ne retenant que les valeurs > à 0
dans mon sous-total.
si tu veux je peux te fournir le fichier
bon courage
rv
"FReedo" a
écrit dans le
message de news:08c001c3a4fb$6ea7c0a0$
Bonjour Hervé,
Merci de suivre ce probleme;
en fait je n'imprime pas les feuilles du classeur mais
une
page générée par le résultat filtré d'un tableau de la
feuille "Général" à l'aide d'un bouton qui est dans la
feuille"àFacturer" et après impression je recommence avec
un nouveau filtre sur le même tableau de base et je
commande l'impression de cet autre résultat via le bouton
placé dans la feuille"àFacturer"
Peux-tu m'en dire plus?
Freedo-----Message d'origine-----
Bonjour,
ci-joint un code qui devrait peut être t'aider.
j'ai un fichier dont je dois effectuer des impressions
filtrées en fonctiondes colonnes 1 et 2
' IMPRESSION DES FEUILLES
For i = 5 To 15
Selection.AutoFilter Field:=1, Criteria1:Îlls(i,
18)If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOutCopies:=1, Collate:=True
Next i
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=1, Criteria1:="="
Selection.AutoFilter Field:=2, Criteria1:="<>"
For i = 5 To 12
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2, Criteria1:Îlls(i,
19)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOutCopies:=1, Collate:=True
Next i
cells(311,2) est un sous.total de la colonne.
vàlà missieu. j'espère pouvoir t'aider
Hervé
"Freedo" a
écrit dans lemessage de news:0aae01c3a470$ede7cdf0
$
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================== =================
2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux
encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à
Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux
encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
.
-----Message d'origine-----
re-.
je m'explique
j'ai un tableau avec en colonne a des N° de camions, et
en colonne b des
transporteurs
ce tableau comporte aussi des colis, poids et montants
facturés.
le but de la manoeuvre est d'effectuer un tri par camion
quelque soit le
transporteur, ensuite un tri par transporteur quelque
soit le camion a
fin d'afficher et d'imprimer le ca réalisé par camion
qqsoit le
transporteur, et le ca par transporteur qqsoit le camion.
j'ai donc repris la meme procédure d'enregistrement que
toi en ajoutant une
boucle pour passer en revue tous les camions et tous les
transporteurs.
la diff est que je dispose d"un champ reprenant tous les
n° des camions, et
d'un autre reprenant tous les noms des transporteurs.
le nb de camion est connu. j'extrais le n° du camion
dans ce champ puis
j'effectue mon tri. ne retenant que les valeurs > à 0
dans mon sous-total.
si tu veux je peux te fournir le fichier
bon courage
rv
"FReedo" <Freedo.anonymous@discussions.microsoft.com> a
écrit dans le
message de news:08c001c3a4fb$6ea7c0a0$a101280a@phx.gbl...
Bonjour Hervé,
Merci de suivre ce probleme;
en fait je n'imprime pas les feuilles du classeur mais
une
page générée par le résultat filtré d'un tableau de la
feuille "Général" à l'aide d'un bouton qui est dans la
feuille"àFacturer" et après impression je recommence avec
un nouveau filtre sur le même tableau de base et je
commande l'impression de cet autre résultat via le bouton
placé dans la feuille"àFacturer"
Peux-tu m'en dire plus?
Freedo
-----Message d'origine-----
Bonjour,
ci-joint un code qui devrait peut être t'aider.
j'ai un fichier dont je dois effectuer des impressions
filtrées en fonction
des colonnes 1 et 2
' IMPRESSION DES FEUILLES
For i = 5 To 15
Selection.AutoFilter Field:=1, Criteria1:=Cells(i,
18)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=1, Criteria1:="="
Selection.AutoFilter Field:=2, Criteria1:="<>"
For i = 5 To 12
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2, Criteria1:=Cells(i,
19)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOut
Copies:=1, Collate:=True
Next i
cells(311,2) est un sous.total de la colonne.
vàlà missieu. j'espère pouvoir t'aider
Hervé
"Freedo" <freedo.anonymous@discussions.microsoft.com> a
écrit dans le
message de news:0aae01c3a470$ede7cdf0
$a601280a@phx.gbl...
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================== =================
2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux
encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à
Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux
encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
.
-----Message d'origine-----
re-.
je m'explique
j'ai un tableau avec en colonne a des N° de camions, et
en colonne b des
transporteurs
ce tableau comporte aussi des colis, poids et montants
facturés.
le but de la manoeuvre est d'effectuer un tri par camion
quelque soit le
transporteur, ensuite un tri par transporteur quelque
soit le camion a
fin d'afficher et d'imprimer le ca réalisé par camion
qqsoit le
transporteur, et le ca par transporteur qqsoit le camion.
j'ai donc repris la meme procédure d'enregistrement que
toi en ajoutant une
boucle pour passer en revue tous les camions et tous les
transporteurs.
la diff est que je dispose d"un champ reprenant tous les
n° des camions, et
d'un autre reprenant tous les noms des transporteurs.
le nb de camion est connu. j'extrais le n° du camion
dans ce champ puis
j'effectue mon tri. ne retenant que les valeurs > à 0
dans mon sous-total.
si tu veux je peux te fournir le fichier
bon courage
rv
"FReedo" a
écrit dans le
message de news:08c001c3a4fb$6ea7c0a0$
Bonjour Hervé,
Merci de suivre ce probleme;
en fait je n'imprime pas les feuilles du classeur mais
une
page générée par le résultat filtré d'un tableau de la
feuille "Général" à l'aide d'un bouton qui est dans la
feuille"àFacturer" et après impression je recommence avec
un nouveau filtre sur le même tableau de base et je
commande l'impression de cet autre résultat via le bouton
placé dans la feuille"àFacturer"
Peux-tu m'en dire plus?
Freedo-----Message d'origine-----
Bonjour,
ci-joint un code qui devrait peut être t'aider.
j'ai un fichier dont je dois effectuer des impressions
filtrées en fonctiondes colonnes 1 et 2
' IMPRESSION DES FEUILLES
For i = 5 To 15
Selection.AutoFilter Field:=1, Criteria1:Îlls(i,
18)If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOutCopies:=1, Collate:=True
Next i
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=1, Criteria1:="="
Selection.AutoFilter Field:=2, Criteria1:="<>"
For i = 5 To 12
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2, Criteria1:Îlls(i,
19)
If Val(Cells(311, 2)) > 0 Then
ActiveWindow.SelectedSheets.PrintOutCopies:=1, Collate:=True
Next i
cells(311,2) est un sous.total de la colonne.
vàlà missieu. j'espère pouvoir t'aider
Hervé
"Freedo" a
écrit dans lemessage de news:0aae01c3a470$ede7cdf0
$
Bonjour à toutes et à tous,
A priori c'est peut-être long comme explication mais
laissé à votre perspicacité je suppose qu'il n'y qua
rajouter quelques lignes pour mon problème.
Comment réaliser l'impression de feuilles filtrées
séparément.
Au départ j'ai un tableau de données dans la
feuille "Général"
En A2 la date, en B2 le n° de chantier exemple 03054 et
de C à AZ des prestations horaires.
Ma première opération manuelle est de filtrer la colonne
A depuis a2 suivant la plage dates ;
Jusque là tout est normal !
Ensuite sur base de ce tableau filtré, j'applique un Tri
sur la colonne B depuis B2 par n° chantier ;
Voilà à partir de ce tableau (filtré) et Trié j'aimerai
automatiser le filtre sur chaque n° de chantier
différent puis l'envoyer dans la feuille «
àFacturer » , appliquer tous les formatages et commande
d'impression séparées pour chaque chantier.
Au stade actuel, j'ai déjà toutes les macros pour
finaliser jusqu'à l'impression d'un chantier filtré.
Ma question principale est comment imprimer
automatiquement tous les chantiers (filtrés) séparément
sur base de la plage filtrée par dates de la feuille «
Général » ?
Merci de suivre
Freedo
Les macros (issues du NG)que j'utilise actuellement :
1.Dans ma feuille « Général »
Private Sub CommandButton1_Click()
'TrierDate
Selection.Sort Key1:=Range("A2"),
Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'-----------------------------------
Private Sub CommandButton2_Click()
'TrierChantier
Selection.Sort Key1:=Range("b2"),
Order1:=xlAscending, Key2:=Range("a2") _
, Order2:=xlAscending, Header:=xlYes,
OrderCustom:=1, MatchCase:úlse _
, Orientation:=xlTopToBottom
Range("A2").Select
End Sub
'======================== =================
2.Dans ma feuille "àFacturer"
Private Sub CommandButton1_Click()
'Sub VidelaSélection()
Application.ScreenUpdating = False
' Appelle la feuille "àFacturer" pour initialisation
Sheets("àFacturer").Select
' affiche toutes les colonnes qui ont été masquées
Range("d11:aZ11").Select
Selection.EntireColumn.Hidden = False
Range("b12").Select
' vide les cellules devant recevoir les nouveaux
encodages
'Rows("12:42").Select
Range("b12:aZ42").Select
Selection.Rows.Hidden = False
' Selection.Hidden = False
Selection.ClearContents
Range("b12").Select
Application.ScreenUpdating = True
' Appelle la feuille "Général" et applique le
filtre "Tous" sur la colonne "Chantier"
Sheets("Général").Select
Selection.AutoFilter Field:=2
ActiveSheet.Range("A2").Select
End Sub
'-------------------------------------------------------
Private Sub CommandButton4_Click()
'Sub àFacturer()
Application.ScreenUpdating = False
'affiche toutes les colonnes qui ont été masquées par la
facturation précédente
Application.ScreenUpdating = False
Sheets("àFacturer").Select
Columns("d:AZ").EntireColumn.AutoFit
' dimensionne les colonnes avec 9 points
Columns("d:az").Select
Selection.ColumnWidth = 9
Range("d12").Select
'Message test si une sélection filtrée est prête
rep = MsgBox("Avez-vous préparé la sélection à
Facturer ?
( Maximum 1 mois et 1 seul chantier )", 4)
If rep = 7 Then
GoTo 1000
End If
' vide les cellules devant recevoir les nouveaux
encodages
' Worksheets("àFacturer").Select
Range("b12:aZ42").Select
Selection.ClearContents
Range("b12").Select
'Recopie le tableau filtré vers la feuille "àfacturer"
With Sheets("Général").Range("a2:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count > 0 Then x = 2 _
Else: x = .Item(2)(1).Row
End With
y = Sheets("Général").Cells.SpecialCells
(xlCellTypeLastCell).Row
Sheets("Général").Range("a" & x & ":az" & y).Copy
Sheets("àFacturer").Range("b12").PasteSpecial
Paste:=xlValues
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Select
'sous-totaux par colonne
Range("d43:az43").FormulaR1C1 = "=SUM(R[-31]C:R[-1]C)"
'ajoute la tva sur le montant de la ligne 43
Range("d45:az45").FormulaR1C1 = "=R[-2]C*R[-1]C"
Application.ScreenUpdating = True
'masque les colonnes inutiles
Application.ScreenUpdating = False
For i = 4 To 53
If Cells(43, i) = "" Or Cells(43, i) = 0 Then Columns
(i).Hidden = True
Next
'envoie à l'impression la feuille "à Facturer"
Range("B12").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
Range("B11").Select
Application.ScreenUpdating = True
1000:
Range("b12").Select
End Sub
.
.