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

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à :eek:

Merci le forum, merci tout le monde spécialement à Raja ,)
@+
 
Dernière édition:

Tibo

XLDnaute Barbatruc
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

@+
 

bpol

XLDnaute Impliqué
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
 

shmider

XLDnaute Occasionnel
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

  • recherche caracteres dans 3 tableaux.zip
    10.4 KB · Affichages: 60

shmider

XLDnaute Occasionnel
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
 

shmider

XLDnaute Occasionnel
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:

shmider

XLDnaute Occasionnel
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:

Tibo

XLDnaute Barbatruc
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

@+
 

shmider

XLDnaute Occasionnel
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:

Tibo

XLDnaute Barbatruc
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

@+
 

shmider

XLDnaute Occasionnel
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

@+
 

Statistiques des forums

Discussions
312 164
Messages
2 085 872
Membres
103 007
dernier inscrit
salma_hayek