Chercher et remplacer avec caractere de 2 colonnes

baptisteleo -  
 baptisteleo -
Bonjour,

J explique mon probleme (plus simple avec un exemple que de longue paroles):

J ai 2 colonnes d un excel comme suivant:
A | B
#2,#500,#152 | #2=LULU
| #500=robert
| #152=bob

et je voudrais obtenir, apres "search & replace":

A | B
LULU,robert,bob | #2=LULU
| #500=robert
| #152=bob

Voila, je sais pas comment faire, j ai cherché plein de méthode mais j arrive pas...

Merci pour votre aide

A voir également:

4 réponses

Bruce Willix Messages postés 13499 Statut Contributeur 2 594
 
Tu veux l'automatiser ou ne le faire qu'une fois ?

Pour le faire une seule fois: Sélectionner la colonne A, lancer le find & replace. Dans find, mettre #2 dans find et LULU dans replace, puis refaire ça 2 fois pour les autres.

Si ça doit être automatique, il faut:
1. décomposer la chaine de caractères grâce aux fonctions FIND() et SEARCH()
2. Réécrire les références #123 dans des cases séparées
3. Utiliser une fonction telle que RECHERCHEV() pour lier les références à l'index
4. Concaténer les résultats pour obtenir une chaie de caractères en sortie (fonction &())
0
Morgothal Messages postés 1350 Statut Membre 184
 
Bonjour à tous les deux,
Comme l'a décrit Bruce juste ici, je l'ai fait de façon presque automatique (avec le menu Données->Convertir plutôt que TROUVE() et CHERCHE()), avec un exemple dans ce classeur.
0
baptisteleo
 
Merci pour ta reponse,
pour etre plus precit, effectivement, j ai besoin de l automatiser (beaucoup de tableau a scruter);

Mais je vois pas v=bien comment faire, car la fonction FIND() je peut la definire en "generique"?
Jai essayer un find sur le "=" et avoir en resultat sur qui suivait apres le "=", mais pas assez doué, j ai pas reussi...

J ai imaginé un rechercheV mais toujours la correspondance entre les #XX et les #XX=YY na pas donné grand chose... il ne me trouvé rien...

pour ta soluce peut tu me donner un peu plus de details... je remet en doute mes capacités... ;D

En tout cas merci pour ta reponse
0
Bruce Willix Messages postés 13499 Statut Contributeur 2 594
 
Base toi sur le tableau de morgothal :)

La décomposition de la chaine d'entrée consiste à faire l'exrcice suivant: Repérer les # dans la chaine de caractère et prendre tous les caractères à sa droite jusqu'à ce qu'on rencontre un second #. Couper la chaine à cet endroit, récupérer le "reste" et recommencer jusqu'à ce que la chaine soit complètement décomposée.
0
baptisteleo
 
voila, un peu de retard mais c est fait, j ai donc decoupé la colonne contenant le XX=YY en xx puis YY dans 2 colonnes et... je vous donne le code cela sera plus simple de comprehension

Sub Recherche_cible()

Dim FeuilleDeTaf, Destinafion, sear As String
Dim monTab() As String
Dim montab2() As String
Dim i, y, derniereligne01, derniereligne02, derniereligne03, derniereligne04 As Integer
i = 3
y = 3

FeuilleDeTaf = InputBox("Nom de la feuille de travail", "Couille de loup")

'With Worksheets("rep01") 'definition de la feuille a travailler
With Worksheets(FeuilleDeTaf) 'definition de la feuille a travailler
derniere_ligne01 = .Range("c1").End(xlDown).Row
derniere_ligne02 = .Range("a1").End(xlDown).Row

For i = 3 To derniere_ligne01 'index pour scruter les lignes de colonne tag de fichier param
repertoire = .Range("c" & i).Value 'Lecture de la case desirer
monTab = Split(repertoire, "=") 'recheche et separation dans un tableau de valeur de repertoire avec en separateur le =
.Range("d" & i).Value = monTab(0) 'insertion des valeur de tableau dans case excel
.Range("e" & i).Value = monTab(1) 'idem manque
Next i

i = 3
For i = 3 To derniere_ligne02 'index pour scruter les lignes de colonne tags de gfx
search = .Range("a" & i).Value 'Lecture de la case desirer
montab2 = Split(search, ",") 'recheche et separation dans un tableau de valeur de repertoire avec en separateur le =
.Range("f" & i).Value = montab2(0) 'insertion des valeur de tableau dans case excel
Next i

derniere_ligne03 = .Range("f3").End(xlDown).Row
derniere_ligne04 = .Range("d3").End(xlDown).Row
i = 3
For i = 3 To derniere_ligne03 'boucle de recheche des tags gfx
For y = 3 To derniere_ligne04 'boucle de recheche tag param qui sera associer au gfx
If .Range("f" & i).Value = .Range("d" & y).Value Then .Range("j" & i).Value = .Range("e" & y).Value Else 'si elmt 1 = elmt2 recup elmt3
Next y
Next i

End With

End Sub

voila donc y a des boucles, du with, du split, du if, bref cela fonctionne sauf qu il a beaucoup d erreur car je n ai pas gerer lors du split un caractere different ou de la mauvaise saisit de la feuille de taf...

voila merci
0