'lancer l'outils filtre automatique sur ton tableau
If Not ton_tab.range('A1').AutoFilter Then ton_tab.range('A1').AutoFilter
'OPTIONNEL si tes noms de colonnes changent
'recherche de la colonne correspondant au premier critère de ton userform
range('A1').Select
range(Selection, Selection.End(xlToRight)).Select
Selection.Find(What:='nomdemacolonne', After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
'récupération du numéro de la colonne correspondante
li_numcol1 = ActiveCell.Column
'tu refais la manip pour les 2 autres critères
'donc tu récupère l'index de tes 3 colonnes
li_numcol1
li_numcol2
li_numcol3
ton_tab.range('A1').AutoFilter Field:=li_numcol1, Criteria1:='' & zoneform1.Value ,Field:=li_numcol2, Criteria1:='' & zoneform2.value,Field:=li_numcol3, Criteria1:='' & zoneform2.value
'SI TES NOMS NE CHANGENT JAMAIS
'et bien tu repères les numéros de colonnes concernés par le filtre puis
ton_tab.range('A1').AutoFilter Field:=index1, Criteria1:='' & zoneform1.Value ,Field:=index2, Criteria1:='' & zoneform2.value,Field:=index3, Criteria1:='' & zoneform2.value
'a partir de là tu as un zoli filtre avec entête + ta fameuse ligne
pour la récupérer la façon la plus simple (du moins sur Excel 2000)
et qui marche à tous les coups
en effet avec l'option Cellulesvisible l'option resize de marche pas, enfin moi j'ai des messages d'erreur à tous les coups
'sélection du résultat du filtre = sélection des cellules visibles
range('A1').Select
Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeVisible).Select
'tu copies /colles dans une nouvelle feuille et tu récupères les lignes sans la ligne de titre
Selection.Copy
etc...
voilou j'espère que ça t'aidera
Deedo
Message édité par: deedo, à: 13/07/2005 16:01