Macro copier coller dans un filtre

Résolu/Fermé
wanajo38 Messages postés 137 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 février 2015 - 23 avril 2011 à 00:35
Le Pingou Messages postés 12042 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 24 avril 2024 - 23 avril 2011 à 22:00
Bonjour,

J'ai créé une base de données de 24000 lignes environ sur Excel 2007 où j'ai classé des contacts clients avec le nom adresse téléphone etc...

Pour rendre l'appli plus conviviale, j'essaye de faire quelque chose qui ressemble à un formulaire de recherche. J'ai créé une cellule ou l'utilisateur doit saisir quelques lettres du nom qu'il recherche par exemple et je voudrais copier cette cellule dans le filtre "contient" afin qu'excel me renvoie toutes les lignes qui contiennent ces lettres. Bon c'est vrai qu'un clic droit sur le filtre et clique gauche sur contient c'est aussi rapide... mais bon, si quelqu'un peut m'aider, ce serait très sympa.

En fait j'ai créé une macro avec l'assistant, elle fait exactement ce que je veux sauf que pour l'exemple j'ai tapé "cha" et du coup dans la macro, il fait toujours référénce à "cha" au lieu de faire référence à la cellule. Ca doit pas être bien compliqué mais je début en vba et malgré le gros bouquin, j'y comprends rien ! Il va falloir que je prenne quelques cours, c'est sûr.

Merci d'avance à ceux qui auront un peu de courage en ce début de week-end.

Je note ma macro (qui ne fonctionnne pas, au cas où)
---------------------------------------------------------------------------------------------------------
Sub RECHNOM()
'
' RECHNOM Macro
'

'
Selection.Copy
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=4, Criteria1:= _
"=*cha*", Operator:=xlAnd
End Sub
---------------------------------------------------------------------------------------------------------


Merci
A voir également:

5 réponses

Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
Modifié par Mytå le 23/04/2011 à 01:02
Salut le forum

Regarde le fichier suivant : Filtre élaboré.xls

Tiré de la ficelle : Macro avec filtre élaboré

Mytå
0
wanajo38 Messages postés 137 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 février 2015 61
23 avril 2011 à 10:21
Bonjour,

Merci pour ta réponse rapide mais elle ne correspond pas réellement à ce que je recherche? Je vais essayer quand même de l'adapter à mon fichier mais je ne suis pas sur que ça fonctionne.

Je ne veux pas que ça copie les données ailleurs, je veux juste que ça filtre les données qui sont dans un tableau juste en dessous. Je veux que la macro sélectionne ce que l'utilisateur recherche et qu'elle applique le filtre qui convient.

Merci
0
wanajo38 Messages postés 137 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 février 2015 61
23 avril 2011 à 11:29
Plusieurs questions suite à l'essai avec ta solution.

- Comment l'affecter à un bouton ou lieu de mettre la macro dans le code de la feuille ?
- Pourquoi quand je recherche "cha", il ne trouve pas "Mr CHANAL" (à cause du Mr ???), comment faire ?
- Chez moi, pour que ça marche, je suis obligé de réinitialiser la macro dans visual basic à chaque fois, ça ne recommence pas à 0 tout seul ?

Sinon, ça me semble pas mal du tout, même si ça n'était pas mon idée de départ.

Merci en tout cas.
0
wanajo38 Messages postés 137 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 février 2015 61
23 avril 2011 à 11:34
Alors, voici la macro, affectée à un bouton :

------------------------------------------------------------
Sub Macro6()
'
' Macro6 Macro
'
Dim rngDonnees As Range
Dim rngCritere As Range

Worksheets("Résultat").Cells.Clear
Set rngDonnees = Worksheets("Données").Range("a1").CurrentRegion
Set rngCritere = Worksheets("Critères").Range("a1").CurrentRegion
rngDonnees.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=rngCritere, Unique:=False
rngDonnees.Copy Destination:=Worksheets("Résultat").Range("a1")
If Worksheets("Données").FilterMode Then Worksheets("Données").ShowAllData
Worksheets("Résultat").Activate

End Sub
--------------------------------------------------------------

J'ai mis une étoile devant ce que je recherche et maintenant il trouve CHANAL si je tape "cha".

Par contre, je suis toujours obligé de réinitialiser la macro par VB, c'est pas pratique.

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12042 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 24 avril 2024 1 426
23 avril 2011 à 22:00
Bonjour,
Une autre solution par cet exemple : https://www.cjoint.com/?3Dxv85ZlJJ
0