1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
Sub Test()
Dim Cl_Pilotage As Workbook
Dim Fe As Worksheet
Dim Plage As Range
Dim I As Integer
Dim Chaine As String
Set Cl_Pilotage = Workbooks("Pilotage.xls")
Set Fe = ThisWorkbook.Worksheets("9144206")
With Cl_Pilotage.Worksheets("Feuil1")
Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Resize(.Cells(.Rows.Count, 1).End(xlUp).Row, 15)
End With
With Plage
'- Filtrer sur la colonne A (Action) sur les lignes ne contenant pas "taux normal" du fichier pilotage (ça j'y arrive)
.AutoFilter 1, "<>Taux normal applicable toute l'année"
'-Filtre sur la colonne O = "" (ça ça va aussi)
.AutoFilter 15, "="
'- Filtrer ensuite sur la colonne B (Produit) du fichier pilotage selon le nom de produit qui apparaît dans la colonne K du fichier maquette
.AutoFilter 2, "=" & Fe.Range("K2")
'- Filtrer ensuite sur la date de début et date de fin, colonnes F et G du fichier pilotage selon la date apparaissant en colonne N du fichier maquette (il faut donc que cette date appartienne à la tranche date début-date fin)
'-----> Ici c'est normalement dans le critère que l'on défini les dates de début et de fin car dans le cas contraire, seules les dates égales seront retournées
'-----> le filtre devrait être : .AutoFilter 6, ">=" & CDbl(Fe.Range("N2")), , "<=" & CDbl(Fe.Range("M2")) et donc porter sur deux champs de la feuille "9144206" du classeur "Maquette"
.AutoFilter 6, ">=" & CDbl(Fe.Range("N2"))
.AutoFilter 7, "<=" & CDbl(Fe.Range("N2")) '<----- à partir d'ici, seules les dates égales seront retournées !!!
'- Filtrer ensuite sur les colonnes D et E (montant minimum et maximum) du fichier pilotage selon le montant se trouvant dans la colonne AG (Montant total) du fichier maquette (même système de tranche que pour la date).
'-----> (même système de tranche que pour la date) alors même punition !!!
.AutoFilter 4, ">=" & Fe.Range("AG2")
.AutoFilter 5, "<=" & Fe.Range("AG2") '<----- à partir d'ici, seules les montants égaux seront retournés !!!
'- Pour finir je dois trouver le taux national et le taux régional apparaissant en colonne M et N du fichier pilotage selon la tranche de la part UC (colonnes I et J) du fichier pilotage que l'on trouve grâce à la part UC globale se trouvant en colonne AJ du fichier maquette (une recherchev pour finir peut-être ?).
For I = 2 To Plage.Rows.Count
If Plage.Rows(I).EntireRow.Hidden = False Then
Chaine = Chaine & "(Ligne " & I & ") Taux national : " & Plage.Cells(I, 13).Value & " Taux régional : " & Plage.Cells(I, 14).Value & vbCrLf
End If
Next I
'supprime le filtrage
.AutoFilter
End With
MsgBox Chaine
End Sub |
Partager