[Résolu][VBA] Autofilter avec nombre de critère variable

Verba_Tim

XLDnaute Occasionnel
Bonjour le forum :)

Je m'adresse encore à vous parce que je suis en train de me compliquer la vie avec ma macro, alors que je suis presque sur que je faire plus simple, même si je ne voie pas encore comment en fait :cool:

Le principe est simple:

J'ai un graph sur 24h, je veux zoomer sur une plage horaire préciser par l'utilisateur via un userform...
Le problème c'est que la taille de cette plage peu être variable: 4h 10h 20h... bref, ça peu être plus ou moins long.
Ensuite, je veut faire un autofilter qui me prendrai juste la plage demandé, et je copie ma sélection dans une page à part pour le nouveau traitement...

Le problème, c'est que l'autofilter accepte certes divers paramètre, mais comment faire en sortes qu'il s'adapte au nombre de variable??

Rappel du code de l'autofilter:
Code:
ActiveSheet.Range("$A$1:$R$4774").AutoFilter Field:=15, Criterial:=Array_
Mavar1, Mavar2, MavarX), Operator:=xlFiltrerValues


Merci d'avance de vous pencher sur mon problème ;)


Au plaisir de vous lire,



VB_T
 
Dernière édition:

Verba_Tim

XLDnaute Occasionnel
Re : [VBA] Autofilter avec nombre de critère variable

^^ Bonjour Job
Pour répondre à tes question: La colonne B représente effectivement l'heure, mais le format, ce n'est pas moi qui l'ai choisi ^^ Le fichier source est issu d'une trace d'une machine. J'effectue déjà un traitement dessus, et je dois maintenant... traité le traitement x) sur une plage horaire comme déjà expliqué ^^'
L'intérêt de la colonne H est en fait simple... je ne peux pas classer mon fichier par heure, mais par nombre d'événement... En effet mon fichier source représente jusqu'à 100 000 lignes maximum et une répartition d'événements inégale par heure ^^" Et je ne souhaite pas dans mon graph avoir une échelle avec des 14:15:12.108, mais seulement avec des indications par heure d'où l'intérêt de transformé mon 14:15:12.108 en 14 par exemple.
J'espère avoir répondu à ta question ^^
Je conçois parfaitement qu'un problème en apparence simple ne le soit pas du tout :rolleyes: et je le conçois de plus en plus au fur et à l'usure que je mis plonge ;)

Au plaisir de vous lire,

VB_T
 

job75

XLDnaute Barbatruc
Re : [VBA] Autofilter avec nombre de critère variable

Re,

Voir le fichier joint avec des heures véritables en colonne B.

Il suffit de filtrer sur la colonne B avec "Filtre personnalisé".

Avec comme critères par exemple :

- supérieur ou égal à => 10:00:00

Et :

- inférieur ou égal à => 20:00:00

Ce qui se traduit facilement en VBA par :

Code:
Feuil1.[A1:I51].AutoFilter Field:=2, Criteria1:= _
  ">=10:00:00", Operator:=xlAnd, Criteria2:="<=20:00:00"
Ensuite on copie les cellules visibles où l'on veut :

Code:
Feuil1.[A1:I51].SpecialCells(xlCellTypeVisible).Copy Feuil2.[A1]
A+
 

Pièces jointes

  • exempleVB_T(1).xls
    47 KB · Affichages: 125

Verba_Tim

XLDnaute Occasionnel
Re : [Résolu][VBA] Autofilter avec nombre de critère variable

Hum peu être une petite question pour Kjin ^^
J'essaye d'adapter ton code a ma macro avec mon userform mais le tri ne fonctionne pas :/
Ton code:
Code:
With [Feuil1]
        .Range("A1:I" & .Range("A65000").End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=[Feuil2].Range("A1:B2"), CopyToRange:=[Feuil2].Range("A4")
    End With

Mon adaptation:
Code:
With sheets("V1b")
        .Range("A1:P" & .Range("A100000").End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=worksheets("V1 Zoom").Range("A1:B2"), CopyToRange:=Worksheets("V1 Zoom").Range("A4")
    End With

Sachant que ma dernière colonne est la colonne P, que l'heure au format xx:xx:xx.xxx est en B, celle au format xx en O Et que mes données pour le graph en P
J'ai bien mes critères ds les cellules A1:B2, il me prend bien les heures limites, mais après le tri il me copie uniquement la ligne 1 du fichier source...



PS : Feuil1 = V1b et Feuil2 V1 Zoom
 
Haut Bas