rechercher les 10 premièrs caractères d'une cellule dans un autre tableau.

  • Initiateur de la discussion Initiateur de la discussion shmider
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

shmider

XLDnaute Occasionnel
Bonjour tout le monde,

Je reviens après une breve absence 😉.

Bien, mon problème, est le suivant.

J'essai de chercher une réference (en texte) contenu dans une cellule, dans trois autres tableaux. Or, la réference peut etre écrite de 3 manières differentes (car ces 3 tableaux sont remplit par 3 personnes differentes).
Donc, je pensais dans un premier temps à aller chercher ces réferences à partir de leurs 10 premiers caractères.

soit en utilisant/améliorant le code:
=(GAUCHE(A1;10)="abcdefghij")*(ESTERR(DROITE(A1)*1))

Mes questions:

- est ce la bonne methode
- si oui, comment faire pour le "abcdefgij" car les références sont diferrentes et elles ne commencent pas par "abcdefghij" forcement ?

voilà, voilà 😱

Merci le forum, merci tout le monde spécialement à Raja ,)
@+
 
Dernière édition:
Re : rechercher les 10 premièrs caractères d'une cellule dans un autre tableau.

Bonjour,

Pour qu'on cerne mieux ton problème, il faudrait que tu nous joignes un petit bout de ton fichier avec un exemple commenté.

A te (re)lire

@+
 
Re : rechercher les 10 premièrs caractères d'une cellule dans un autre tableau.

bonjour shmider,
sinon une petite macro:

Function enleve_nbre(ByRef texto As String) As String

Dim reg As Object
Dim extraction As Object
Dim lettre As Object

'instancie
Set reg = CreateObject("vbscript.regexp")

' travaille sur toute la cellule
reg.Global = True
' définit le modèle (complémentaire au chiffres )
reg.Pattern = "(\D)"

' éxécute l'extraction svt modèle (collection des lettres)
Set extraction = reg.Execute(texto)
' concaténète les membres de la collection "extraction"
For Each lettre In extraction
enleve_nbre = enleve_nbre & (lettre.Value)
Next lettre

Set extraction = Nothing
Set reg = Nothing
End Function

A+
BPOL
 
Re : rechercher les 10 premièrs caractères d'une cellule dans un autre tableau.

Re à toi 😉
salut bpol;

Comme convenu le fichier pour ulistration du problème 😉

Remarque: bpol je teste et je te dis quoi 😉 ciao

@+


Bonjour,

Pour qu'on cerne mieux ton problème, il faudrait que tu nous joignes un petit bout de ton fichier avec un exemple commenté.

A te (re)lire

@+
 

Pièces jointes

Re : rechercher les 10 premièrs caractères d'une cellule dans un autre tableau.

Bonjour Bipol,
Bonjour Tibo,

Bipol, je ne comprends pas pourquoi tu me propose de supprimer les chiffres? en fait, j en ai pas! j'ai que des caractères.

Tibo est ce que tu as besoin de plus d explication pour comprendre mon problème? je suis disponible.

Amicalement,
Shmider.


bonjour shmider,
sinon une petite macro:

Function enleve_nbre(ByRef texto As String) As String

Dim reg As Object
Dim extraction As Object
Dim lettre As Object

'instancie
Set reg = CreateObject("vbscript.regexp")

' travaille sur toute la cellule
reg.Global = True
' définit le modèle (complémentaire au chiffres )
reg.Pattern = "(\D)"

' éxécute l'extraction svt modèle (collection des lettres)
Set extraction = reg.Execute(texto)
' concaténète les membres de la collection "extraction"
For Each lettre In extraction
enleve_nbre = enleve_nbre & (lettre.Value)
Next lettre

Set extraction = Nothing
Set reg = Nothing
End Function

A+
BPOL
 
Re : rechercher les 10 premièrs caractères d'une cellule dans un autre tableau.

Re-Bonjour les jeunes !!

Voilà on faisant des recherches pousées à gauche et à droite, j'ai fini par me faire aider pour rassembler des morceaux de codes, et j'arrive là:

=NB.SI([fichier1.xls]test1!$A$2:$A$10;GAUCHE($A2;CHERCHE("ième";$A2)-1)&"*")>0

ici le texte recherché est "ième" à titre d'exemple !!

cependant, j'ai deux problèmes:
- NB.SI ne marche que si les fichiers sont ouverts !! (mauvais pour moi)
- le texte rechercher doit etre renseigner à chaque ligne (donc on peut pas tirer sur les ligne à partir de la première !!!)

Que faire?

Help please 😉

Merci pour votre temps et votre patience 😉
@+
 
Dernière édition:
Re : rechercher les 10 premièrs caractères d'une cellule dans un autre tableau.

Re Bonjour,

Voilà j'arrive là maintenant " (et un grand merci à Raja):
=NB.SI(INDIRECT("["&B$1&".xls]test1!A2:A10");GAUCHE($A2;10)&"*")>0 (avec prise en compte des en têtes ).

cependant, j'ai un problème:
- NB.SI ne marche que si les fichiers sont ouverts !! (mauvais pour moi)
Y a t il une autre solution alternative s'il vous plait ??

Merci pour votre aide.
@+
 
Dernière édition:
Re : rechercher les 10 premièrs caractères d'une cellule dans un autre tableau.

Bonjour,

Sans trop de certitude, car pas tout suivi sur les 2 Forums où tu as posté.

Un essai avec B2 de ton fcihier central :

Code:
=SI(SOMMEPROD(((ESTNUM(TROUVE($A2;[fichier1.xls]test1!$A$2:$A$22)))*
LIGNE([fichier1.xls]test1!$A$2:$A$22))*1);"ok";"pas ok")

Le chemin est à adapter à ton chemin réel.

Essaye et dis nous

@+
 
Re : rechercher les 10 premièrs caractères d'une cellule dans un autre tableau.

Re-Bonjour,

Tibo ton code fonctionne effectivement, sauf que là il me donne pas le choix d'aller chercher que les 10 premiers caractères par exemple. Je suis obligé d'avoir un "match à 100%" entre les textes !! et c'est pas évident dans mon cas.
j'ai fais une petite étude de la fiabilité des deux codes, et j'arrive à:
- pour le code 1 (celui developpé avec Raja): 89% des cas il arrive à identifier les REF correspondentes.
- le second (le tien): 41% des cas il trouve les REF correspondentes.
ça serai bien si on pouvais l'améliorer de telle sorte, à ce qu'on puisse choisir le nombre des caractères à chercher !

Merci et mille merci 😉

@+
 
Dernière édition:
Re : rechercher les 10 premièrs caractères d'une cellule dans un autre tableau.

re,

Pour chercher les 10 caractères, cette correction :

Code:
=SI(SOMMEPROD(((ESTNUM(TROUVE([COLOR=blue]GAUCHE[/COLOR][COLOR=blue]([/COLOR]$A2[COLOR=blue];10)[/COLOR];
[fichier1.xls]test1!$A$2:$A$22)))*LIGNE([fichier1.xls]test1!$A$2:$A$22))*1);
"ok";"pas ok")

Je te laisse tester

@+
 
Re : rechercher les 10 premièrs caractères d'une cellule dans un autre tableau.

Re à toi,

Oui bien vu 😉

ça marche nickel 😉

& mille merci 😉

@+


re,

Pour chercher les 10 caractères, cette correction :

Code:
=SI(SOMMEPROD(((ESTNUM(TROUVE([COLOR=blue]GAUCHE[/COLOR][COLOR=blue]([/COLOR]$A2[COLOR=blue];10)[/COLOR];
[fichier1.xls]test1!$A$2:$A$22)))*LIGNE([fichier1.xls]test1!$A$2:$A$22))*1);
"ok";"pas ok")

Je te laisse tester

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour