OVH Cloud OVH Cloud

recherche de lettres dans des valeurs

9 réponses
Avatar
grodep
bonsoir a tous, voici ce que je cherche a faire :
j'ai un tableau dans lequel toutes les valeurs sont des mots, et il y en a
énormément( 4 colonnes de 65536)
J'aimerais trouver une formule qui me sortirait de ces colonnes tous les
mots contenant des lettres que je préciserai moi meme. vous croyez que c'est
possible ? Et si oui, comment ?
Merci d'avance

9 réponses

Avatar
JB
Bonjour,

Voir PJ http://cjoint.com/?myh0qBIz3W

1-Pour les visualiser avec MEFC:
-Selectionner les colonnes A:B
-Format/Mise en forme cond/Formule
=CHERCHE($F$2;A1)>0

2-Pour les extraire en colonne J:K:

Sub Extrait()
[J:K].ClearContents
ligne = 1
For Each c In [A:B].SpecialCells(xlCellTypeConstants, 23)
If InStr(c.Value, [f2]) > 0 Then
Cells(ligne, 10) = c
Cells(ligne, 11) = c.Address
ligne = ligne + 1
End If
Next c
End Sub

A B
1 Dupont Cuzin
2 Martin Martin
3 Guidez Bouchez
4 Martinet Martinet
5 Dutont Bernier
6 Eloise Duront

F
1 Séquence lettres cherchée
2 on

Cordialement JB
Avatar
grodep
merci beaucoup pour ce fichier. Une petite précision malgré tout, je
voudrais qu'il puisse me trouver non pas uniquement des séquences de lettes
mais tous les mots dans lequel se trouvent au moins les lettres que je
précise mais dans n'importe quel ordre : si je précise "ton", je veux qu'il
me trouve "dupont" et "ducont" mais aussi "nato" en revanche pas docin qui
ne contient pas une des lettres recherchées.;
Merci pour tout

"JB" a écrit dans le message de news:

Bonjour,

Voir PJ http://cjoint.com/?myh0qBIz3W

1-Pour les visualiser avec MEFC:
-Selectionner les colonnes A:B
-Format/Mise en forme cond/Formule
=CHERCHE($F$2;A1)>0

2-Pour les extraire en colonne J:K:

Sub Extrait()
[J:K].ClearContents
ligne = 1
For Each c In [A:B].SpecialCells(xlCellTypeConstants, 23)
If InStr(c.Value, [f2]) > 0 Then
Cells(ligne, 10) = c
Cells(ligne, 11) = c.Address
ligne = ligne + 1
End If
Next c
End Sub

A B
1 Dupont Cuzin
2 Martin Martin
3 Guidez Bouchez
4 Martinet Martinet
5 Dutont Bernier
6 Eloise Duront

F
1 Séquence lettres cherchée
2 on

Cordialement JB
Avatar
AV
| voudrais qu'il puisse me trouver non pas uniquement des séquences de lettes
| mais tous les mots dans lequel se trouvent au moins les lettres que je
| précise mais dans n'importe quel ordre

Un exemple là :
http://cjoint.com/?myproUrIqN

Paramètres à accepter (ou à modifier) :
* Les données sont en A:D de "Feuil1"
* Il n'y a rien en F1:F2

Le principe retenu est l'utilisation du filtre élaboré (avec critère calculé)
pour chaque colonne et l'extraction vers une feuille créée à cet effet
("Extract").
Vu le nombre de lignes à examiner, le recours à une boucle sur chacune des
cellules doit être exclu (temps d'exécution rédhibitoire)

AV
Avatar
AV
Conseil : Enregistrer le fichier sur le DD avant exécution

AV
Avatar
grodep
super !!! c'est exactement ce que je cherchais !! Un grand merci pour cette
brillante démonstration.
Juste un tout petit détail, si je peux me permettre : comment faire pour
qu'il fasse attention aux lettres présentes plusieurs fois dans le critere
de recherche? Je m'explique : si je mets josse ou jossee, le résultat
affiché sera le même, la macro ne tient pas compte du fait qu'il y a 2 "e"
dans le critère de recherche? Est ce possible de le faire ?
Merci encore
"AV" a écrit dans le message de news:

| voudrais qu'il puisse me trouver non pas uniquement des séquences de
lettes
| mais tous les mots dans lequel se trouvent au moins les lettres que je
| précise mais dans n'importe quel ordre

Un exemple là :
http://cjoint.com/?myproUrIqN

Paramètres à accepter (ou à modifier) :
* Les données sont en A:D de "Feuil1"
* Il n'y a rien en F1:F2

Le principe retenu est l'utilisation du filtre élaboré (avec critère
calculé)
pour chaque colonne et l'extraction vers une feuille créée à cet effet
("Extract").
Vu le nombre de lignes à examiner, le recours à une boucle sur chacune des
cellules doit être exclu (temps d'exécution rédhibitoire)

AV




Avatar
grodep
et enfin, on va dire que j'abuse, est il possible de faire un filtre
automatique sur la plage de résultat de maniere a ce qu'il me présente les
résultats classés selon le nombre total de lettres des mots trouvés ?
Merci ;)
"AV" a écrit dans le message de news:

| voudrais qu'il puisse me trouver non pas uniquement des séquences de
lettes
| mais tous les mots dans lequel se trouvent au moins les lettres que je
| précise mais dans n'importe quel ordre

Un exemple là :
http://cjoint.com/?myproUrIqN

Paramètres à accepter (ou à modifier) :
* Les données sont en A:D de "Feuil1"
* Il n'y a rien en F1:F2

Le principe retenu est l'utilisation du filtre élaboré (avec critère
calculé)
pour chaque colonne et l'extraction vers une feuille créée à cet effet
("Extract").
Vu le nombre de lignes à examiner, le recours à une boucle sur chacune des
cellules doit être exclu (temps d'exécution rédhibitoire)

AV




Avatar
AV
| Je m'explique : si je mets josse ou jossee, le résultat
| affiché sera le même, la macro ne tient pas compte du fait qu'il y a 2 "e"
| dans le critère de recherche? Est ce possible de le faire ?

Que devient la question initiale ?

AV
Avatar
grodep
je ne comprends pas : la question initiale reste la meme et toujours
valable: il s'agit de trouver dans une liste de mots ceux qui contiennent au
moins toutes les lettres précisées dans les criteres de recherche: la macro
que tu as créée répond effectivement à cette question mais uniquement a
condition qu'il n'y ait pas de répétition de lettres dans les critères . Ce
que j'aimerais savoir, c'est s'il est possible que la macro prenne en compte
les doublons de lettres.
ex : dans la liste josse, josset ermela tartempion , si je fais une
recherche sur les lettres "e a" actuellement il me sortira : ermela et
tartempion, mais si je fais une recherche sur "e a e" il me sortira
également tartempion et ermela alors que j'aimerais qu'il ne me sorte que
ermela.

Merci beaucoup

"AV" a écrit dans le message de news:

| Je m'explique : si je mets josse ou jossee, le résultat
| affiché sera le même, la macro ne tient pas compte du fait qu'il y a 2
"e"
| dans le critère de recherche? Est ce possible de le faire ?

Que devient la question initiale ?

AV




Avatar
AV
Voilà qui devrait répondre aux précédentes questions et... peut-être celle à
venir concernant la casse (?)

http://cjoint.com/?mCkYhPh4Yj

PS : Enregistrer sur le DD avant exécution

AV