Problème de recherche que je n'arrive pas à résoudre

Fermé
landos Messages postés 5 Date d'inscription jeudi 26 septembre 2013 Statut Membre Dernière intervention 26 septembre 2013 - 26 sept. 2013 à 10:20
landos Messages postés 5 Date d'inscription jeudi 26 septembre 2013 Statut Membre Dernière intervention 26 septembre 2013 - 26 sept. 2013 à 15:29
Bonjour,
Je souhaiterais avec une macro réaliser une recherche et une copie d'éléments.
Je donne l'exemple :
Sexe Famille
M 002
F 001
M 005
F 003
M 006
M 008
M 011
F 030
M 012
M 014
F 015
M 016
F 031
M 017
F 013
M 020


Niveau Famille
CM1 002$001
CM2 005$003
CM2 006
CM2 008
CM2 011$030
CM1 012
CM2 014$015
CM2 016$031
CM2 017$013
CM1 020
CM1 023
CM1 024
CM1 026

Les deux extraits sont dans deux feuilles différentes.
Je voudrais dans la première rechercher le contenu de la cellule famille dans la colonne famille de la deuxième et écrire la gauche de la deuxième.

dans la cellule suivante il faut chercher 001 écrire 002 (qui fait partie de la chaîne 002$001

De même pour les 2 cellules suivantes (005 et 003) qui devraient devenir 005 et 005 depuis la chaîne 005$003

Le 006 serait dans la recherche mais ne changerait bien sur pas...
Les colonnes à traiter peuvent avoir jusqu'à 400 lignes.

J'avoue que je sèche...
Si quelqu'un peut me donner une piste ou une idée, je suis preneur.

Merci d'avance.

Yves

6 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 412
26 sept. 2013 à 10:34
Bonjour
je ne sais pas si vous nous dites tout, à, mais s'il 'y a qu'une fois le code cherché dans le champ, et si la configuration de vos codes et toujours la même, sans VBA:

Exemple à adapter

en X1: le code cherché en A1:A400 vos codes:
en Y1 la formule
=SI(ET(X1<>"";NB.SI($A$1:$A$400;"*"&$X1));GAUCHE(DROITE(RECHERCHEV("*"&$X1;$A$1:$A$400;1;0);7);3);"")

attention X1 doit être un texte, à entrer donc avec l'apostrophe:'001

attention à la position de "*" qui pré&cise que le texte cherché doit être à la fin du texte complet


crdlmnt

0
landos Messages postés 5 Date d'inscription jeudi 26 septembre 2013 Statut Membre Dernière intervention 26 septembre 2013
26 sept. 2013 à 13:13
Bonjour Vaucluse,

Merci pour cette réponse qui fonctionne, mais uniquement sur la deuxième ligne.

Il faut balayer le code cherché pour chacune des lignes.
Pour la première ligne je dois chercher 002, comme il existe à gauche, j'écris 002
pour la deuxième, je cherche 001, il n'existe pas à gauche donc j'écris 002
pour la troisième je cherche 005, il existe à gauche, donc j'écris 005
pour la quatrième je cherche 003, il n'existe pas à gauche donc j'écris 005
et ce jusqu'à la fin de ma colonne du premier tableau.

Merci encore à vous de m'aider.
Si vous le souhaitez, je peux vous envoyer les fichiers.
Bon après-midi

Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 412
Modifié par Vaucluse le 26/09/2013 à 13:41
Oui effectivement il faudra bien le fichier ... et quelques explications complémentaires sur ce que vous voulez obtenir et où situer les résultats que vous espérez!
vous pouvez déposer le fichier sur :
http//:www.cjoint.com
en revenant ici déposer le lien donné par le site.
A + crdlmnt
0
landos Messages postés 5 Date d'inscription jeudi 26 septembre 2013 Statut Membre Dernière intervention 26 septembre 2013
Modifié par landos le 26/09/2013 à 14:31
Vaucluse,
En lien le fichier pour tester.
Merci beaucoup.
Cordialement
https://www.cjoint.com/?3IAoDiIgyvq
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 412
26 sept. 2013 à 14:41
Pas facile à piger votre affaire
le problème revient il à dire qu'il faut chercher le code à gauche lorsqu'on a un M en A et dans le code complet lorsqu'on a un F?
ensuite renvoyer le code à gauche dans les deux cas si la condition est remplie?
dans tous les cas si la condition n'est pas remplie que fait il faire?
Ce que vous appelez unique est il le fait que le code ne contient que trois chiffres?
à vous lire
0
landos Messages postés 5 Date d'inscription jeudi 26 septembre 2013 Statut Membre Dernière intervention 26 septembre 2013
26 sept. 2013 à 15:01
Les nombres du tableau sont pour permettre le rattacher des enfants à leurs parents respectifs lorsque ceux-ci n'habitent pas à la même adresse.
C'est l'objet de tout un traitement dans une macro pour traiter les fichiers avant ce stade.

Là je veux faire que les deux parents qui n'habitent pas à la même adresse aient le même numéro que l'enfant.

Le traitement précédent ne peut pas être modifié.

Le résultat résumé est le suivant pour moi :

Dans la chaîne contenant le $ si la partie gauche est identique à la cellule d'origine on garde la partie gauche.
Si la cellule à chercher correspond à la partie droite on prend la partie gauche.

Mais si c'est plus facile ont peut aussi envisager d'utiliser le champ civilité de la feuille parents.

Espérant avoir rendu ma demande moins nébuleuse.

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 412
26 sept. 2013 à 15:18
Re
dites nous si cela vous convient (sans VBA)
https://www.cjoint.com/?CIAprl4FcAS
crdlmnt
0
landos Messages postés 5 Date d'inscription jeudi 26 septembre 2013 Statut Membre Dernière intervention 26 septembre 2013
26 sept. 2013 à 15:29
Cà a l'air parfait.
Je teste sur quelques autres fichiers.

Merci beaucoup de votre disponibilité et réactivité.

Bien cordialement.
0