Macro copier coller dans un filtre
Résolu
wanajo38
Messages postés
147
Date d'inscription
Statut
Membre
Dernière intervention
-
-
-
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
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:
- Macro copier coller dans un filtre
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Retrouver un copier-coller android - Guide
- Copier-coller - Accueil - Informatique
- Copier coller pdf - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
5 réponses
Salut le forum
Regarde le fichier suivant : Filtre élaboré.xls
Tiré de la ficelle : Macro avec filtre élaboré
Mytå
Regarde le fichier suivant : Filtre élaboré.xls
Tiré de la ficelle : Macro avec filtre élaboré
Mytå
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
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
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.
- 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.
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
------------------------------------------------------------
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question