OVH Cloud OVH Cloud

boucle sur filtre presque fini

7 réponses
Avatar
Freedo
bonjour =E0 Toutes et =E0 tous,
comment formuler une boucle de filtre sur la feuil1 qui=20
est d=E9j=E0 filtr=E9e avec comme crit=E8re la cellule d'une plage=20
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=20
la cellule a51(de la feuill2), je fais mon traitement puis=20
je remets mon filtre =E0 sa situation de d=E9part et je refais=20
un filtre avec le contenu de la cellule a52 et ainsi de=20
suite.=20
Pour le moment j'ai ceci qui fonctione mais pour 1fois:
Sheets("G=E9n=E9ral").Range("b2").AutoFilter Field:=3D2,_=20
Criteria1:=3DSheets("=E0Facturer").Range("a51")=20
merci de suivre
Freedo

7 réponses

Avatar
Denis Michon
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
Avatar
Freedo
Bonjour Denis,
merci beaucoup pour le traitement du code ,
Je vais l'ai incorporé dans ma macro de base.
le premier traitement va bien mais à partir du deuxieme
il y a queques erreurs de récupérations de lignes.
Je teste et puis je t'informe;
Cordialement,
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


.



Avatar
Freedo
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!


Avatar
Denis Michon
Bonjour Freedo,

Envoie le fichier avec les explications d'usage sur le résultat que tu veux obtenir, je regarderai cela un peu plus tard
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!


Avatar
Freedo
OK Denis, c'est dans ta bal
freedo
-----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

plus tard
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!



.




Avatar
Denis Michon
Bonjour Freedo,

Moi, je n'ai rien reçu !

Si tu veux bien faire une nouvelle tentative...


Salutations!



"Freedo" a écrit dans le message de news:008201c3b507$b7424d00$
OK Denis, c'est dans ta bal
freedo
-----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

plus tard
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!



.




Avatar
Denis Michon
Bonjour Alfreedo,


Voilà , j'ai reçu ton fichier... il était pris à quelque part dans mon logiciel anti-spam !


J'ai regardé la procédure...Je veux bien t'aider sauf qu'il m'est difficile de décoder la section du traitement que tu as
défini. Comment savoir si les lignes de code traduisent bien ta pensée ?? Il n'est pas surprenant que les quelques lignes de
code que je t'ai donné ne fonctionnent pas !

Si tu veux te faciliter la tâche , regroupe ensemble les tâches que la procédure doit effectuer lors du filtre. À titre
d'exemple : concernant la feuille "àFacturer" quelles sont les opérations à effectuer avant de lancer le filtre.

J'ai repris une partie du code et je l'ai regroupé : Je me suis rendu à cette ligne de code :
'Recopie le tableau filtré vers la feuille "àfacturer" dans le "traitement"

à partir de là , les choses se compliquent parce que je ne comprends pas où (la feuille et à quelle adresse) tu veux copier
le résultat des filtres.

J'espère que tu vas pouvoir m'éclairer sur le sujet en m'indiquant clairement l'endroit où chaque résultat du filtre doit
apparaître ....regarde ce qui suit , j'ai débuté à regroupe les commandes...


Salutations!

Début de la ré-écriture de la procédure..
'-------------------------------
Sub Testefiltre()
'Objet: Re: boucle sur filtre presque fini

Dim Rg As Range

If MsgBox("Avez-vous préparé la sélection à Facturer ?" & vbcrl & _
"(Maximum 31 jours ou 1 mois) et 1 seul chantier)" _
, vbCritical + vbYesNo, "Attention") Then

With Sheets("àFacturer")
Set Rg = .Range("a51:A" & Range("A65536").End(xlUp).Row)
'Redondance de ces 2 lignes de code
.Columns("d:AZ").EntireColumn.AutoFit
.Columns("d:AZ").ColumnWidth = 9
.Range("b12:aZ42").ClearContents
End With

'Application.ScreenUpdating = False
For Each C In Rg
With Sheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
MsgBox (C)
'le traitement------------------------------------------------






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)
End With

For Each C In Rg
With Sheets("Général")
With .Range("b2")
.AutoFilter Field:=2, Criteria1:=C
MsgBox (C)


'le traitement-------------------------------------------

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