• Initiateur de la discussion Initiateur de la discussion reve24
  • 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 !

reve24

XLDnaute Occasionnel
bonjour
commement remplacer rapidement
B,"C010213740","F2C","CLI","F2C" par

B,"C010213740","FSE1","CLI","FSE1"

il prend la valeur dans col B et remplace 3eme et 5 eme champs

VOIR TABLEAU excel

merci a vous
 

Pièces jointes

Re : remplace

Bonjour reve,

Et comment sait-on quelle partie des données d'entrée remplacer ? ça change régulièrement dans ton exemple...
Visiblement, toi tu sais mais moi je n'en ai aucune idée

Edit : Bonjour PierreJean 🙂

A la suite de la réponse de PierreJean, sur la logique du dernier élément (qui fait toujours 5 caractères dans tes exemples), en formule ça pourrait donner

Code:
=SUBSTITUE(A2;DROITE(A2;5);""""&B2&"""")
 
Dernière édition:
Re : remplace

Bonjour le fil, bonjour le forum,

Une solution VBA :
InStrRev renvoie la position x de la virgule en partant de la fin, on prend les caractères en partant de la gauche jusqu'à x+1 (pour le premier "), on ajoute la valeur de la cellule en colonne B et on termine en ajoutant le second ".

Code:
Sub Macro1()
Dim cel As Range 'déclare la variable cel
 
For Each cel In Range("A2:A" & Range("A65536").End(xlUp).Row) 'boucle sur toutes les cellule éditée cel de la colonne A
    cel.Value = Left(cel.Value, InStrRev(cel.Value, ",", -1) + 1) & cel.Offset(0, 1) & Chr(34)
Next cel
End Sub
 
Dernière édition:
Re : remplace

Re

Salut tototiti 🙂
Salut Robert 🙂

Pour natorp 🙂

VB:
Sub modifie()
For n = 2 To Range("A65536").End(xlUp).Row
a = Split(Range("A" & n), ",")
aa = a(UBound(a))
Range("A" & n) = Replace(Range("A" & n), aa, """" & Range("B" & n) & """")
Next
End Sub
 
Re : remplace

Pierrejean

J'ai beau essayé de comprendre, je n'y arrive pas

Peux-tu prendre de ton temps pour que je comprenne cette macro ?

je ne vois pas pourquoi elle remplace certaines chaînes de caractères et pas d'autres....

Merci Gérard
 
Re : remplace

Re

Avec commentaires:

VB:
Sub modifie()
'pour chaque ligne de 2 à la derniere non vide colonne A
For n = 2 To Range("A65536").End(xlUp).Row
 'mise sous forme de tableau du contenu de la cellule An (la virgule etant le delimiteur pour chacune des valeurs )
 a = Split(Range("A" & n), ",")
 'mettre en aa la derniere valeur du tableau
 aa = a(UBound(a))
 'remplacer dans la cellule An toutes les occurences de aa par la valeur de la cellule Bn encadrée de ""
 Range("A" & n) = Replace(Range("A" & n), aa, """" & Range("B" & n) & """")
Next
End Sub
 
- 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

Discussions similaires

Réponses
4
Affichages
333
Réponses
6
Affichages
264
Réponses
12
Affichages
452
Réponses
7
Affichages
391
  • Question Question
Réponses
8
Affichages
298
Réponses
12
Affichages
364
Réponses
4
Affichages
281
Retour