[VBA] Filtrage d'une colonne en VBA

SkinDash

XLDnaute Nouveau
Bonjour,

J'ai débuté un code VBA sur le fichier joint, mais je n'arrive pas à avancer d'avantage...

Je cherche à filtrer plusieurs choses sur la feuille "Data" :

- Filtrer la colonne B (source) en fonction du nombre trouvé en G7 sur la feuille "Fraud Monitoring - PX level"
- Filtrer la colonne T (totalRisk), garder toute les lignes supérieur ou égal au nombre renseigné en M11 sur la feuille "Fraud Monitoring - PX level"
- Filtrer la colonne U (totalRiskRatio), garder toute les lignes supérieur ou égal au pourcentage renseigné en O11 sur la feuille "Fraud Monitoring - PX level"

J'ai essayé pour le premier filtre un:

With Worksheets("Data")
.AutoFilter Field:=Rows(1).Find("source", lookat:=xlWhole).Column, Criteria1:=Array(Id), Operator:=xlFilterValues
End With

Mais j'ai le message d'erreur Variable objet ou variable de bloc With non définie.


Si possible, je souhaiterais ajouter le résultat des 3 filtres précents, sur la feuille "Fraud Monitoring - PX level" dans la range "M16:p46" (que je clear quand la macro se lance Worksheets("Fraud Monitoring - PX level").Range("M16:p46").ClearContents)

J'ai uniquement besoin de remonter le Publisher (colonne BH sur la feuille "Data"), le Site (colonne BG sur la feuille "Data"), la zone (colonne C sur la feuille "Data") et le jour (colonne BK sur la feuille "Data").

J'ai mis par défaut 31 emplacement, mais il n'y en aura jamais autant.

Si quelqu'un a un idée de ce qui bloque ça m'aiderait beaucoup,

Merci et bonne journée :)

Ps: La feuille data faisait plus de 150K lignes, j'ai du supprimer des lignes pour pouvoir poster la feuille sur le Forum, c'est normal que beaucoup d'ID ne soient pas trouvé.
 

Pièces jointes

  • Fraud Report - v3.xlsm
    130.6 KB · Affichages: 63
Dernière édition:

Lolote83

XLDnaute Barbatruc
Re : [VBA] Filtrage d'une colonne en VBA

Salut SkinDash,
Je ne suis pas sur d'avoir tout compris.
- Filtrer la colonne B (source) en fonction du nombre trouvé en G7 sur la feuille "Fraud Monitoring - PX level"
- Filtrer la colonne T (totalRisk), garder toute les lignes supérieur ou égal au nombre renseigné en M11 sur la feuille "Fraud Monitoring - PX level"
- Filtrer la colonne U (totalRiskRatio), garder toute les lignes supérieur ou égal au pourcentage renseigné en O11 sur la feuille "Fraud Monitoring - PX level"
Est-ce trois filtres différents, donc 3 opérations consécutives, ou simplement un seul filtre comprenant ces 3 critères ?
Je comptais passer par les filtres élaborés mais actuellement, si 3 critères pour un seul filtre, résultat=RIEN
@+ Lolote83
 

SkinDash

XLDnaute Nouveau
Re : [VBA] Filtrage d'une colonne en VBA

Bonjour Lolote,

Merci pour ton temps ! :)

Oui effectivement il s'agit d'un seul et même filtre, mais avec des critères différents sur ces 3 colonnes.

C'est normal qu'il n'y ait aucun résultat qui remonte, j'ai dû supprimer des lignes pour pouvoir poster le fichier.

En d'autres termes, je souhaite par exemple filter la source (colonne B) 12345 pour lesquel il y a plus de 1000 totalRisk (colonne T) et dont le totalRiskRatio est de plus de 3% (colonne U), en sachant que 12345, 1000 et 3% sont des variables.
 
Dernière édition:

Lolote83

XLDnaute Barbatruc
Re : [VBA] Filtrage d'une colonne en VBA

Re salut,
Voici donc un début de solution, mais n'ayant aucune donnée remontée, je ne peux pas traiter la deuxième partie à savoir :
Si possible, je souhaiterais ajouter le résultat des 3 filtres précents, sur la feuille "Fraud Monitoring - PX level" dans la range "M16:p46" (que je clear quand la macro se lance Worksheets("Fraud Monitoring - PX level").Range("M16:p46").ClearContents)

J'ai uniquement besoin de remonter le Publisher (colonne BH sur la feuille "Data"), le Site (colonne BG sur la feuille "Data"), la zone (colonne C sur la feuille "Data") et le jour (colonne BK sur la feuille "Data").
Voir onglet FE
@+ Lolote83
 

Pièces jointes

  • Copie de SKINDASH - Fraud Report - v3.xlsm
    153.7 KB · Affichages: 48

SkinDash

XLDnaute Nouveau
Re : [VBA] Filtrage d'une colonne en VBA

C'est Top !

Est-ce que tu pourrais simplement ajouter en plus de subsource(PUBLISHER) domain(SITE) campaign(ZONE) sur ta feuille "FE" en D10 le day correspondant ? (colonne BK de la feuille Data)

Merci beaucoup pour ta réactivité, vraiment sympa ! ;)
 

SkinDash

XLDnaute Nouveau
Re : [VBA] Filtrage d'une colonne en VBA

Re,
Voilà, c'est fait
@+ Lolote83

En fait j'ai un souci sur le filtre, quand je met autre chose que 0% dans "totalRiskRatio" (feuille FE cellule C2), le filtre ne marche plus, il n'y a plus aucun data remonté.

J'ai fait deux trois modifs dans le fichier, la macro est call lorsque la cellule D7 de la feuille "Fraud Monitoring - PX level" change.

J'ai laissé de la data pour faire le test avec la valeur "Digiteka" (Id 39), normalement avec ces valeurs:

source totalRisk totalRiskRatio
39 >=1 >=0,005

Des lignes devraient remonter.

J'ai juste l'entête du tableau qui est copié collé, en M16 N16 O16 P16 je me retrouve avec [subsource (PUBLISHER) domain (SITE) campaign (ZONE) Day]
 

Pièces jointes

  • Copie de SKINDASH - Fraud Report - v3.xlsm
    291.1 KB · Affichages: 48

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 924
Membres
103 404
dernier inscrit
sultan87