Chercher et remplacer avec caractere de 2 colonnes
baptisteleo
-
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
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:
- Chercher et remplacer avec caractere de 2 colonnes
- Faire 2 colonnes sur word - Guide
- Caractère spéciaux - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Caractere speciaux - Guide
- Caractère ascii - Guide
4 réponses
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 &())
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 &())
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.
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.
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
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
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.
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.
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
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