Filtrer une partie d'un tableau

apt

XLDnaute Impliqué
Bonsoir à tous,

J'ai un tableau de trois colonnes, A, B et C.

J'aimerais filtrer ce dernier de façon à n'avoir que les deux premières colonnes (A et B) dans le tableau résultant.


Merci.
 

Pièces jointes

  • FiltreElabore_v1.xls
    32 KB · Affichages: 60
Dernière édition:
G

Guest

Guest
Re : Fimtrer une partie d'un tableau

Bonjour,

Dans les deux premières cellules ("A1:B1") de la feuille destination tu mets les noms de colonne désirées et dans la macro:

CopyToRange Sheets("M").Range("A1:B1")

A+
 

apt

XLDnaute Impliqué
Re : Filtrer une partie d'un tableau

Bonsoir Hasco,

Ca n'a pas marché.

Et puis j'aimerais le faire d'une manière automatique.

- Depuis la liste déroulante, vérifier si la feuille existe sinon la créée

- Copier les deux colonnes répondants au critère du filtre.

Merci.
 
G

Guest

Guest
Re : Filtrer une partie d'un tableau

Re,

1 - ça n'a pas marché n'est pas une réponse efficiente, cela ne renseigne rien.
2 - la vérification de feuille, n'étais pas dans la question de départ. Faire une recherche sur le forum, c'est un sujet maintes fois traité.

Pour la question de départ:
Code:
    If Target.Address = "$F$2" Then
        Dim LastRow&, LastRowList&
        Dim wsData As Worksheet, wsState As Worksheet
        Set wsData = Sheets("Feuil1")
        Set wsState = Sheets([F2].Value)
        wsState.Cells.Clear
        wsState.Range("A1:B1").Value = wsData.Range("A1:B1").Value
        LastRow = wsData.Range("A" & Rows.Count).End(xlUp).Row
        wsData.Range("A1:C" & LastRow).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
                                                      wsData.Range("F1:F2"), CopyToRange:=wsState.Range("A1:B1"), Unique:=True
        wsState.Select
        Set wsData = Nothing
        Set wsState = Nothing
    End If

A+
 

apt

XLDnaute Impliqué
Re : Filtrer une partie d'un tableau

Re,

Pour préserver le format des titres j'ai remplacé cette ligne :

Code:
wsState.Range("A1:B1").Value = wsData.Range("A1:B1").Value
Par celle-là :

Code:
wsState.Range("A1:B1").Copy wsData.Range("A1:B1")
Mais j'ai reçus cette erreur :

Nom de champ introuvable ou incorrect dans la plage d'extraction.
Ligne concernée :

Code:
wsData.Range("A1:C" & LastRow).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
                                                      wsData.Range("F1:F2"), CopyToRange:=wsState.Range("A1:B1"), Unique:=True

:)
 
G

Guest

Guest
Re : Filtrer une partie d'un tableau

Re,

source et destination de la copie interverties!!!!
Code:
wsData.Range("A1:B1").Copy wsState.Range("A1:B1")
et non pas
Code:
wsState.Range("A1:B1").Copy wsData.Range("A1:B1")

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley