OVH Cloud OVH Cloud

chaine de caractere

32 réponses
Avatar
grodep
bonjour je cherche une fonction qui permettrait en précisant des lettres de
me sortir tous les mots qui les contiennent parmi une liste donnée.
Merci de vos réponses

10 réponses

1 2 3 4
Avatar
Pascal Engelmajer
Salut,
http://www.ilyapa.net/baseExcel/regExp01.xls
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"grodep" a écrit dans le message de news:
#
scusez j'ai peut etre demandé qqchose de compliqué mais je n'y connais
absolument rien et donc n'y comprends goutte...
dans quoi puis coller cet exemple afin qu'il me parle un peu plus ?
j'ai donné qqques précisions dans le fil, pour info la liste de mots en
question en comprends 65536*6 ... autrement dit 6 colonnes pleines a
raison

d'un mot par cellule



"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
la question est vague...
la liste est-elle dans des cellules ? un mot par cellule ?
pour ce type de recherche il est facile d'utiliser les expressions
régulières
Ci dessous une petite démo

'faire référence à "Microsoft VBScript Regular Expression 5.5"
'(ou 5.6 selon la version...)
Function regExpMot(mot, chaine)
Dim r As regexp
Dim pat As String
Set r = New regexp
pat = "([^ ]{0,}" & mot & "[^ ]*b)"
Debug.Print pat
r.Global = True
r.IgnoreCase = True
r.Pattern = pat
Set res = r.Execute(chaine)
For i = 0 To res.Count - 1
Debug.Print i & " => " & res(i)
Next i
End Function
Sub test()
regExpMot "mot", "mot le mot motus vivendi les motards les marmots"
End Sub


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"grodep" a écrit dans le message de news:
O8mAK3$
bonjour je cherche une fonction qui permettrait en précisant des
lettres



de
me sortir tous les mots qui les contiennent parmi une liste donnée.
Merci de vos réponses












Avatar
grodep
pascal je te remercie beaucoup de te pencher ainsi sur mon probleme mais je
ne vois pas quoi faire de l'exemple que tu me présentes : dans mon cas a
moi, les mots sont tous dans des cellules séparées. De plus lorsque j'essaie
de changer les lettres dans le champ "cherche" et que je mets autre chose
que "mot", le résultat me renvoie une erreur ..
Bref je m'en sors pas :(
Je suis incapable ( ou presque) de travailler sur du VBS donc a moins que je
n'ai juste a changer la plage de cellules, je risque d'avoir du mal a adapté
les scripts proposés. ..

"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
http://www.ilyapa.net/baseExcel/regExp01.xls
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"grodep" a écrit dans le message de news:
#
scusez j'ai peut etre demandé qqchose de compliqué mais je n'y connais
absolument rien et donc n'y comprends goutte...
dans quoi puis coller cet exemple afin qu'il me parle un peu plus ?
j'ai donné qqques précisions dans le fil, pour info la liste de mots en
question en comprends 65536*6 ... autrement dit 6 colonnes pleines a
raison

d'un mot par cellule



"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
la question est vague...
la liste est-elle dans des cellules ? un mot par cellule ?
pour ce type de recherche il est facile d'utiliser les expressions
régulières
Ci dessous une petite démo

'faire référence à "Microsoft VBScript Regular Expression 5.5"
'(ou 5.6 selon la version...)
Function regExpMot(mot, chaine)
Dim r As regexp
Dim pat As String
Set r = New regexp
pat = "([^ ]{0,}" & mot & "[^ ]*b)"
Debug.Print pat
r.Global = True
r.IgnoreCase = True
r.Pattern = pat
Set res = r.Execute(chaine)
For i = 0 To res.Count - 1
Debug.Print i & " => " & res(i)
Next i
End Function
Sub test()
regExpMot "mot", "mot le mot motus vivendi les motards les
marmots"



End Sub


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"grodep" a écrit dans le message de news:
O8mAK3$
bonjour je cherche une fonction qui permettrait en précisant des
lettres



de
me sortir tous les mots qui les contiennent parmi une liste donnée.
Merci de vos réponses
















Avatar
michdenis
Bonjour grodep,

Une procédure qui devrait marcher !

A )Dans un module standard, tu copie la procédure suivante :

'-------------------------------
Function Check(rg As Range, Lettre As String) As Boolean

For A = 1 To Len(Lettre)
If InStr(1, rg, Mid(Lettre, A, 1), vbTextCompare) <> 0 Then
Check = True
Exit Function
End If
Next

End Function
'-------------------------------

B ) Tu appelle la commande "Filtre élaboré" (barre des menus / données / filtre / filtre élaboré)

C ) tu choisis comme plage pour le filtre la colonne où est ta liste de mots

D ) Tu définis ta zone de critère comme suit :
G1 : tu laisses la cellule vide
G2 : =Check(A2;"AsW")

Donc Zone de critère : G1:G2
A2 représente la première ligne de DONNÉES(EXCLUANT LA LIGNE DE TITRE) de ta plage à filtrer
AsW représente les caractères que tu veux vérifier la présence, cette procédure n'est pas sensible à la casse
des caractères.

E ) Observe le résultat !!!



Salutations!






"grodep" a écrit dans le message de news:O8mAK3$
bonjour je cherche une fonction qui permettrait en précisant des lettres de
me sortir tous les mots qui les contiennent parmi une liste donnée.
Merci de vos réponses
Avatar
grodep
J 'voudrai pas passer pour le dernier des idiots (quoique c'ets déjà fait
sans doute ...) mais c'est quoi un module ?
"michdenis" a écrit dans le message de
news:%
Bonjour grodep,

Une procédure qui devrait marcher !

A )Dans un module standard, tu copie la procédure suivante :

'-------------------------------
Function Check(rg As Range, Lettre As String) As Boolean

For A = 1 To Len(Lettre)
If InStr(1, rg, Mid(Lettre, A, 1), vbTextCompare) <> 0 Then
Check = True
Exit Function
End If
Next

End Function
'-------------------------------

B ) Tu appelle la commande "Filtre élaboré" (barre des menus / données /
filtre / filtre élaboré)


C ) tu choisis comme plage pour le filtre la colonne où est ta liste de
mots


D ) Tu définis ta zone de critère comme suit :
G1 : tu laisses la cellule vide
G2 : =Check(A2;"AsW")

Donc Zone de critère : G1:G2
A2 représente la première ligne de DONNÉES(EXCLUANT LA LIGNE DE
TITRE) de ta plage à filtrer

AsW représente les caractères que tu veux vérifier la présence,
cette procédure n'est pas sensible à la casse

des caractères.

E ) Observe le résultat !!!



Salutations!






"grodep" a écrit dans le message de
news:O8mAK3$

bonjour je cherche une fonction qui permettrait en précisant des lettres
de

me sortir tous les mots qui les contiennent parmi une liste donnée.
Merci de vos réponses





Avatar
Pascal Engelmajer
Salut,
je regarderai un peu plus tard ce que je peux faire.
il n'y a qu'un seul mot par cellule.
j'ai toujours pas compris le mais pas le mot "lettre"
dans ton texte
lettres précisées quelquesoit l'ordre dans lequel je les ai précisé mais
sans répétition : si je dis les lettres "e" et "t" je veux aussi bien le
mot "et" que le mot " entiché" mais pas le mot "lettre"




--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"grodep" a écrit dans le message de news:
en7$
pascal je te remercie beaucoup de te pencher ainsi sur mon probleme mais
je

ne vois pas quoi faire de l'exemple que tu me présentes : dans mon cas a
moi, les mots sont tous dans des cellules séparées. De plus lorsque
j'essaie

de changer les lettres dans le champ "cherche" et que je mets autre chose
que "mot", le résultat me renvoie une erreur ..
Bref je m'en sors pas :(
Je suis incapable ( ou presque) de travailler sur du VBS donc a moins que
je

n'ai juste a changer la plage de cellules, je risque d'avoir du mal a
adapté

les scripts proposés. ..

"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
http://www.ilyapa.net/baseExcel/regExp01.xls
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"grodep" a écrit dans le message de news:
#
scusez j'ai peut etre demandé qqchose de compliqué mais je n'y connais
absolument rien et donc n'y comprends goutte...
dans quoi puis coller cet exemple afin qu'il me parle un peu plus ?
j'ai donné qqques précisions dans le fil, pour info la liste de mots
en



question en comprends 65536*6 ... autrement dit 6 colonnes pleines a
raison

d'un mot par cellule



"Pascal Engelmajer" a écrit dans
le



message de news:
Salut,
la question est vague...
la liste est-elle dans des cellules ? un mot par cellule ?
pour ce type de recherche il est facile d'utiliser les expressions
régulières
Ci dessous une petite démo

'faire référence à "Microsoft VBScript Regular Expression 5.5"
'(ou 5.6 selon la version...)
Function regExpMot(mot, chaine)
Dim r As regexp
Dim pat As String
Set r = New regexp
pat = "([^ ]{0,}" & mot & "[^ ]*b)"
Debug.Print pat
r.Global = True
r.IgnoreCase = True
r.Pattern = pat
Set res = r.Execute(chaine)
For i = 0 To res.Count - 1
Debug.Print i & " => " & res(i)
Next i
End Function
Sub test()
regExpMot "mot", "mot le mot motus vivendi les motards les
marmots"



End Sub


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il
va."




Sénèque.
http://www.ilyapa.net/excel
"grodep" a écrit dans le message de news:
O8mAK3$
bonjour je cherche une fonction qui permettrait en précisant des
lettres



de
me sortir tous les mots qui les contiennent parmi une liste
donnée.





Merci de vos réponses




















Avatar
grodep
j'crois qu'j'ai réussi a copier ça dans un module standard, du coup en haut
a droite de ma feuille j'ai une liste déroulante a un seul choix : module
G1 et G2 remplis comme demandé, je fais filtre élaboré et là il me retourne
: nom de champ incorrect ou introuvable dans la plage d'extraction :(
"michdenis" a écrit dans le message de
news:%
Bonjour grodep,

Une procédure qui devrait marcher !

A )Dans un module standard, tu copie la procédure suivante :

'-------------------------------
Function Check(rg As Range, Lettre As String) As Boolean

For A = 1 To Len(Lettre)
If InStr(1, rg, Mid(Lettre, A, 1), vbTextCompare) <> 0 Then
Check = True
Exit Function
End If
Next

End Function
'-------------------------------

B ) Tu appelle la commande "Filtre élaboré" (barre des menus / données /
filtre / filtre élaboré)


C ) tu choisis comme plage pour le filtre la colonne où est ta liste de
mots


D ) Tu définis ta zone de critère comme suit :
G1 : tu laisses la cellule vide
G2 : =Check(A2;"AsW")

Donc Zone de critère : G1:G2
A2 représente la première ligne de DONNÉES(EXCLUANT LA LIGNE DE
TITRE) de ta plage à filtrer

AsW représente les caractères que tu veux vérifier la présence,
cette procédure n'est pas sensible à la casse

des caractères.

E ) Observe le résultat !!!



Salutations!






"grodep" a écrit dans le message de
news:O8mAK3$

bonjour je cherche une fonction qui permettrait en précisant des lettres
de

me sortir tous les mots qui les contiennent parmi une liste donnée.
Merci de vos réponses





Avatar
grodep
ok t'ennuie pas a répondre, j'écris plus vite que je ne réfléchis ///
"michdenis" a écrit dans le message de
news:%
Bonjour grodep,

Une procédure qui devrait marcher !

A )Dans un module standard, tu copie la procédure suivante :

'-------------------------------
Function Check(rg As Range, Lettre As String) As Boolean

For A = 1 To Len(Lettre)
If InStr(1, rg, Mid(Lettre, A, 1), vbTextCompare) <> 0 Then
Check = True
Exit Function
End If
Next

End Function
'-------------------------------

B ) Tu appelle la commande "Filtre élaboré" (barre des menus / données /
filtre / filtre élaboré)


C ) tu choisis comme plage pour le filtre la colonne où est ta liste de
mots


D ) Tu définis ta zone de critère comme suit :
G1 : tu laisses la cellule vide
G2 : =Check(A2;"AsW")

Donc Zone de critère : G1:G2
A2 représente la première ligne de DONNÉES(EXCLUANT LA LIGNE DE
TITRE) de ta plage à filtrer

AsW représente les caractères que tu veux vérifier la présence,
cette procédure n'est pas sensible à la casse

des caractères.

E ) Observe le résultat !!!



Salutations!






"grodep" a écrit dans le message de
news:O8mAK3$

bonjour je cherche une fonction qui permettrait en précisant des lettres
de

me sortir tous les mots qui les contiennent parmi une liste donnée.
Merci de vos réponses





Avatar
Pascal Engelmajer
Salut,
si ceci fonctionne c'est que j'ai pas compris la question !!!
.../... or je voudrais qu'il me sélectionne tous les mots contenant ces
lettres qqsoit l'ordre .

et non pas les lignes...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"michdenis" a écrit dans le message de news:
#
Bonjour grodep,

Une procédure qui devrait marcher !

A )Dans un module standard, tu copie la procédure suivante :

'-------------------------------
Function Check(rg As Range, Lettre As String) As Boolean

For A = 1 To Len(Lettre)
If InStr(1, rg, Mid(Lettre, A, 1), vbTextCompare) <> 0 Then
Check = True
Exit Function
End If
Next

End Function
'-------------------------------

B ) Tu appelle la commande "Filtre élaboré" (barre des menus / données /
filtre / filtre élaboré)


C ) tu choisis comme plage pour le filtre la colonne où est ta liste de
mots


D ) Tu définis ta zone de critère comme suit :
G1 : tu laisses la cellule vide
G2 : =Check(A2;"AsW")

Donc Zone de critère : G1:G2
A2 représente la première ligne de DONNÉES(EXCLUANT LA LIGNE DE
TITRE) de ta plage à filtrer

AsW représente les caractères que tu veux vérifier la présence,
cette procédure n'est pas sensible à la casse

des caractères.

E ) Observe le résultat !!!



Salutations!






"grodep" a écrit dans le message de
news:O8mAK3$

bonjour je cherche une fonction qui permettrait en précisant des lettres
de

me sortir tous les mots qui les contiennent parmi une liste donnée.
Merci de vos réponses





Avatar
michdenis
Bonjour grodep,

Est-ce que cela fonctionne ?


Salutations!


"grodep" a écrit dans le message de news:
ok t'ennuie pas a répondre, j'écris plus vite que je ne réfléchis ///
"michdenis" a écrit dans le message de
news:%
Bonjour grodep,

Une procédure qui devrait marcher !

A )Dans un module standard, tu copie la procédure suivante :

'-------------------------------
Function Check(rg As Range, Lettre As String) As Boolean

For A = 1 To Len(Lettre)
If InStr(1, rg, Mid(Lettre, A, 1), vbTextCompare) <> 0 Then
Check = True
Exit Function
End If
Next

End Function
'-------------------------------

B ) Tu appelle la commande "Filtre élaboré" (barre des menus / données /
filtre / filtre élaboré)


C ) tu choisis comme plage pour le filtre la colonne où est ta liste de
mots


D ) Tu définis ta zone de critère comme suit :
G1 : tu laisses la cellule vide
G2 : =Check(A2;"AsW")

Donc Zone de critère : G1:G2
A2 représente la première ligne de DONNÉES(EXCLUANT LA LIGNE DE
TITRE) de ta plage à filtrer

AsW représente les caractères que tu veux vérifier la présence,
cette procédure n'est pas sensible à la casse

des caractères.

E ) Observe le résultat !!!



Salutations!






"grodep" a écrit dans le message de
news:O8mAK3$

bonjour je cherche une fonction qui permettrait en précisant des lettres
de

me sortir tous les mots qui les contiennent parmi une liste donnée.
Merci de vos réponses





Avatar
grodep
effectivemtnt c''est une erreur de ma part entre deux idées qui se sont
confondues dans ma tete :
en fait deux types de réponses sont envisageables :
soit qu'on me sorte tous les mots qui comprennent au moins les lettres que
j'ai précisé
soit qu'on me sorte tous les mots qui ne comprennent QUE les lettres que
j'ai précisé;
j'avoue mon penchant pour la 1ere solution

"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
je regarderai un peu plus tard ce que je peux faire.
il n'y a qu'un seul mot par cellule.
j'ai toujours pas compris le mais pas le mot "lettre"
dans ton texte
lettres précisées quelquesoit l'ordre dans lequel je les ai précisé mais
sans répétition : si je dis les lettres "e" et "t" je veux aussi bien
le


mot "et" que le mot " entiché" mais pas le mot "lettre"




--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"grodep" a écrit dans le message de news:
en7$
pascal je te remercie beaucoup de te pencher ainsi sur mon probleme
mais


je
ne vois pas quoi faire de l'exemple que tu me présentes : dans mon cas a
moi, les mots sont tous dans des cellules séparées. De plus lorsque
j'essaie

de changer les lettres dans le champ "cherche" et que je mets autre
chose


que "mot", le résultat me renvoie une erreur ..
Bref je m'en sors pas :(
Je suis incapable ( ou presque) de travailler sur du VBS donc a moins
que


je
n'ai juste a changer la plage de cellules, je risque d'avoir du mal a
adapté

les scripts proposés. ..

"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
http://www.ilyapa.net/baseExcel/regExp01.xls
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"grodep" a écrit dans le message de news:
#
scusez j'ai peut etre demandé qqchose de compliqué mais je n'y
connais




absolument rien et donc n'y comprends goutte...
dans quoi puis coller cet exemple afin qu'il me parle un peu plus ?
j'ai donné qqques précisions dans le fil, pour info la liste de mots
en



question en comprends 65536*6 ... autrement dit 6 colonnes pleines a
raison

d'un mot par cellule



"Pascal Engelmajer" a écrit dans
le



message de news:
Salut,
la question est vague...
la liste est-elle dans des cellules ? un mot par cellule ?
pour ce type de recherche il est facile d'utiliser les expressions
régulières
Ci dessous une petite démo

'faire référence à "Microsoft VBScript Regular Expression 5.5"
'(ou 5.6 selon la version...)
Function regExpMot(mot, chaine)
Dim r As regexp
Dim pat As String
Set r = New regexp
pat = "([^ ]{0,}" & mot & "[^ ]*b)"
Debug.Print pat
r.Global = True
r.IgnoreCase = True
r.Pattern = pat
Set res = r.Execute(chaine)
For i = 0 To res.Count - 1
Debug.Print i & " => " & res(i)
Next i
End Function
Sub test()
regExpMot "mot", "mot le mot motus vivendi les motards les
marmots"



End Sub


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il
va."




Sénèque.
http://www.ilyapa.net/excel
"grodep" a écrit dans le message de news:
O8mAK3$
bonjour je cherche une fonction qui permettrait en précisant des
lettres



de
me sortir tous les mots qui les contiennent parmi une liste
donnée.





Merci de vos réponses
























1 2 3 4