-----Message d'origine-----
Bonjour Freedo,
'---------------------------
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
"Freedo" a écrit
dans le message de news:03f301c3b254$086e9e10
bonjour à Toutes et à tous,
comment formuler une boucle de filtre sur la feuil1 qui
est déjà filtrée avec comme critère la cellule d'une
plage
de feuil2
en feuil2 j'ai (en format texte)en partant de a51
a51 3037
a52 3068
a53 3082
et ainsi de suite
donc sur la feuill1 je fais un filtre avec le contenu de
la cellule a51(de la feuill2), je fais mon traitement
puis
je remets mon filtre à sa situation de départ et je
refais
un filtre avec le contenu de la cellule a52 et ainsi de
suite.
Pour le moment j'ai ceci qui fonctione mais pour 1fois:
Sheets("Général").Range("b2").AutoFilter Field:=2,_
Criteria1:=Sheets("àFacturer").Range("a51")
merci de suivre
Freedo
.
-----Message d'origine-----
Bonjour Freedo,
'---------------------------
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message de news:03f301c3b254$086e9e10
bonjour à Toutes et à tous,
comment formuler une boucle de filtre sur la feuil1 qui
est déjà filtrée avec comme critère la cellule d'une
plage
de feuil2
en feuil2 j'ai (en format texte)en partant de a51
a51 3037
a52 3068
a53 3082
et ainsi de suite
donc sur la feuill1 je fais un filtre avec le contenu de
la cellule a51(de la feuill2), je fais mon traitement
puis
je remets mon filtre à sa situation de départ et je
refais
un filtre avec le contenu de la cellule a52 et ainsi de
suite.
Pour le moment j'ai ceci qui fonctione mais pour 1fois:
Sheets("Général").Range("b2").AutoFilter Field:=2,_
Criteria1:=Sheets("àFacturer").Range("a51")
merci de suivre
Freedo
.
-----Message d'origine-----
Bonjour Freedo,
'---------------------------
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
"Freedo" a écrit
dans le message de news:03f301c3b254$086e9e10
bonjour à Toutes et à tous,
comment formuler une boucle de filtre sur la feuil1 qui
est déjà filtrée avec comme critère la cellule d'une
plage
de feuil2
en feuil2 j'ai (en format texte)en partant de a51
a51 3037
a52 3068
a53 3082
et ainsi de suite
donc sur la feuill1 je fais un filtre avec le contenu de
la cellule a51(de la feuill2), je fais mon traitement
puis
je remets mon filtre à sa situation de départ et je
refais
un filtre avec le contenu de la cellule a52 et ainsi de
suite.
Pour le moment j'ai ceci qui fonctione mais pour 1fois:
Sheets("Général").Range("b2").AutoFilter Field:=2,_
Criteria1:=Sheets("àFacturer").Range("a51")
merci de suivre
Freedo
.
-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
-----Message d'origine-----
Bonjour Freedo,
Envoie le fichier avec les explications d'usage sur le
résultat que tu veux obtenir, je regarderai cela un peu
aujourd'hui.
Salutations!
"Freedo" a écrit
dans le message de news:0b6601c3b4f9$d9ac7400
Bonjour Denis,
J'ai testé dans tous les sens et je n'arrive pas a avoir
quelque chose de correct.
la premiere sélection se déroule bien mais à partir de la
deuxième (de la boucle) il me selectionne la ligne des
titres au lieu de la valeur de la cellule en b2
pourtant suivant le msgbox cela me renvoie la bonne
sélection.
Je n'en sors pas !
Aurais-tu une idée oµ cela coince ?
Eventuellement je pourrais t'envoyer mon fichier zippé si
tu veux bien.
Merci de suivre,
Freedo
Sub Testefiltre()
'Objet: Re: boucle sur filtre presque fini
'De:"Denis Michon" Envoyé:
11/24/2003 6:47:45 AM
Dim Rg As Range
Sheets("àFacturer").Activate
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Sheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
MsgBox (C)
'le traitement-------------------------------------------
-
----
'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 si une sélection filtrée est prête
'rep = MsgBox("Avez-vous préparé la sélection à
Facturer ? (Maximum 31 jours ou 1 mois) et 1 seul
chantier)", 4)
'If rep = 7 Then
'GoTo FIN
'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("a1:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count <= 0 Then x = 2 _
Else: x = .Item(2)(1).Row
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)"
'multiplie par la ligne 43 par le tarif horaire en ligne
44
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
'--------------------------------------------------------
End With
End With
End With
Next
Set Rg = Nothing
FIN:
Range("b12").Select
End Sub-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
.
-----Message d'origine-----
Bonjour Freedo,
Envoie le fichier avec les explications d'usage sur le
résultat que tu veux obtenir, je regarderai cela un peu
aujourd'hui.
Salutations!
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message de news:0b6601c3b4f9$d9ac7400
Bonjour Denis,
J'ai testé dans tous les sens et je n'arrive pas a avoir
quelque chose de correct.
la premiere sélection se déroule bien mais à partir de la
deuxième (de la boucle) il me selectionne la ligne des
titres au lieu de la valeur de la cellule en b2
pourtant suivant le msgbox cela me renvoie la bonne
sélection.
Je n'en sors pas !
Aurais-tu une idée oµ cela coince ?
Eventuellement je pourrais t'envoyer mon fichier zippé si
tu veux bien.
Merci de suivre,
Freedo
Sub Testefiltre()
'Objet: Re: boucle sur filtre presque fini
'De:"Denis Michon" <denis.michon@cgocable.ca> Envoyé:
11/24/2003 6:47:45 AM
Dim Rg As Range
Sheets("àFacturer").Activate
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Sheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
MsgBox (C)
'le traitement-------------------------------------------
-
----
'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 si une sélection filtrée est prête
'rep = MsgBox("Avez-vous préparé la sélection à
Facturer ? (Maximum 31 jours ou 1 mois) et 1 seul
chantier)", 4)
'If rep = 7 Then
'GoTo FIN
'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("a1:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count <= 0 Then x = 2 _
Else: x = .Item(2)(1).Row
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)"
'multiplie par la ligne 43 par le tarif horaire en ligne
44
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
'--------------------------------------------------------
End With
End With
End With
Next
Set Rg = Nothing
FIN:
Range("b12").Select
End Sub
-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
.
-----Message d'origine-----
Bonjour Freedo,
Envoie le fichier avec les explications d'usage sur le
résultat que tu veux obtenir, je regarderai cela un peu
aujourd'hui.
Salutations!
"Freedo" a écrit
dans le message de news:0b6601c3b4f9$d9ac7400
Bonjour Denis,
J'ai testé dans tous les sens et je n'arrive pas a avoir
quelque chose de correct.
la premiere sélection se déroule bien mais à partir de la
deuxième (de la boucle) il me selectionne la ligne des
titres au lieu de la valeur de la cellule en b2
pourtant suivant le msgbox cela me renvoie la bonne
sélection.
Je n'en sors pas !
Aurais-tu une idée oµ cela coince ?
Eventuellement je pourrais t'envoyer mon fichier zippé si
tu veux bien.
Merci de suivre,
Freedo
Sub Testefiltre()
'Objet: Re: boucle sur filtre presque fini
'De:"Denis Michon" Envoyé:
11/24/2003 6:47:45 AM
Dim Rg As Range
Sheets("àFacturer").Activate
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Sheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
MsgBox (C)
'le traitement-------------------------------------------
-
----
'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 si une sélection filtrée est prête
'rep = MsgBox("Avez-vous préparé la sélection à
Facturer ? (Maximum 31 jours ou 1 mois) et 1 seul
chantier)", 4)
'If rep = 7 Then
'GoTo FIN
'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("a1:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count <= 0 Then x = 2 _
Else: x = .Item(2)(1).Row
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)"
'multiplie par la ligne 43 par le tarif horaire en ligne
44
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
'--------------------------------------------------------
End With
End With
End With
Next
Set Rg = Nothing
FIN:
Range("b12").Select
End Sub-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
.
-----Message d'origine-----
Bonjour Freedo,
Envoie le fichier avec les explications d'usage sur le
résultat que tu veux obtenir, je regarderai cela un peu
aujourd'hui.
Salutations!
"Freedo" a écrit
dans le message de news:0b6601c3b4f9$d9ac7400
Bonjour Denis,
J'ai testé dans tous les sens et je n'arrive pas a avoir
quelque chose de correct.
la premiere sélection se déroule bien mais à partir de la
deuxième (de la boucle) il me selectionne la ligne des
titres au lieu de la valeur de la cellule en b2
pourtant suivant le msgbox cela me renvoie la bonne
sélection.
Je n'en sors pas !
Aurais-tu une idée oµ cela coince ?
Eventuellement je pourrais t'envoyer mon fichier zippé si
tu veux bien.
Merci de suivre,
Freedo
Sub Testefiltre()
'Objet: Re: boucle sur filtre presque fini
'De:"Denis Michon" Envoyé:
11/24/2003 6:47:45 AM
Dim Rg As Range
Sheets("àFacturer").Activate
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Sheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
MsgBox (C)
'le traitement-------------------------------------------
-
----
'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 si une sélection filtrée est prête
'rep = MsgBox("Avez-vous préparé la sélection à
Facturer ? (Maximum 31 jours ou 1 mois) et 1 seul
chantier)", 4)
'If rep = 7 Then
'GoTo FIN
'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("a1:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count <= 0 Then x = 2 _
Else: x = .Item(2)(1).Row
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)"
'multiplie par la ligne 43 par le tarif horaire en ligne
44
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
'--------------------------------------------------------
End With
End With
End With
Next
Set Rg = Nothing
FIN:
Range("b12").Select
End Sub-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
.
-----Message d'origine-----
Bonjour Freedo,
Envoie le fichier avec les explications d'usage sur le
résultat que tu veux obtenir, je regarderai cela un peu
aujourd'hui.
Salutations!
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message de news:0b6601c3b4f9$d9ac7400
Bonjour Denis,
J'ai testé dans tous les sens et je n'arrive pas a avoir
quelque chose de correct.
la premiere sélection se déroule bien mais à partir de la
deuxième (de la boucle) il me selectionne la ligne des
titres au lieu de la valeur de la cellule en b2
pourtant suivant le msgbox cela me renvoie la bonne
sélection.
Je n'en sors pas !
Aurais-tu une idée oµ cela coince ?
Eventuellement je pourrais t'envoyer mon fichier zippé si
tu veux bien.
Merci de suivre,
Freedo
Sub Testefiltre()
'Objet: Re: boucle sur filtre presque fini
'De:"Denis Michon" <denis.michon@cgocable.ca> Envoyé:
11/24/2003 6:47:45 AM
Dim Rg As Range
Sheets("àFacturer").Activate
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Sheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
MsgBox (C)
'le traitement-------------------------------------------
-
----
'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 si une sélection filtrée est prête
'rep = MsgBox("Avez-vous préparé la sélection à
Facturer ? (Maximum 31 jours ou 1 mois) et 1 seul
chantier)", 4)
'If rep = 7 Then
'GoTo FIN
'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("a1:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count <= 0 Then x = 2 _
Else: x = .Item(2)(1).Row
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)"
'multiplie par la ligne 43 par le tarif horaire en ligne
44
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
'--------------------------------------------------------
End With
End With
End With
Next
Set Rg = Nothing
FIN:
Range("b12").Select
End Sub
-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
.
-----Message d'origine-----
Bonjour Freedo,
Envoie le fichier avec les explications d'usage sur le
résultat que tu veux obtenir, je regarderai cela un peu
aujourd'hui.
Salutations!
"Freedo" a écrit
dans le message de news:0b6601c3b4f9$d9ac7400
Bonjour Denis,
J'ai testé dans tous les sens et je n'arrive pas a avoir
quelque chose de correct.
la premiere sélection se déroule bien mais à partir de la
deuxième (de la boucle) il me selectionne la ligne des
titres au lieu de la valeur de la cellule en b2
pourtant suivant le msgbox cela me renvoie la bonne
sélection.
Je n'en sors pas !
Aurais-tu une idée oµ cela coince ?
Eventuellement je pourrais t'envoyer mon fichier zippé si
tu veux bien.
Merci de suivre,
Freedo
Sub Testefiltre()
'Objet: Re: boucle sur filtre presque fini
'De:"Denis Michon" Envoyé:
11/24/2003 6:47:45 AM
Dim Rg As Range
Sheets("àFacturer").Activate
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)
dd = Rg.Address
End With
For Each C In Rg
With Sheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
MsgBox (C)
'le traitement-------------------------------------------
-
----
'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 si une sélection filtrée est prête
'rep = MsgBox("Avez-vous préparé la sélection à
Facturer ? (Maximum 31 jours ou 1 mois) et 1 seul
chantier)", 4)
'If rep = 7 Then
'GoTo FIN
'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("a1:A65536").SpecialCells
(xlCellTypeVisible).Areas
If .Item(1).Rows.Count <= 0 Then x = 2 _
Else: x = .Item(2)(1).Row
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)"
'multiplie par la ligne 43 par le tarif horaire en ligne
44
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
'--------------------------------------------------------
End With
End With
End With
Next
Set Rg = Nothing
FIN:
Range("b12").Select
End Sub-----Message d'origine-----
Bonjour Freedo,
Sub filtre()
Dim Rg As Range
With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End
(xlUp).Row)dd = Rg.Address
End With
For Each C In Rg
With Worksheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
'le traitement
End With
End With
Next
Set Rg = Nothing
End Sub
'---------------------------
Salutations!
.