Comment remplacer des lettres par d'autres
Bonjour
Pouvez vous m'aider à résoudre ce problème
Dans une colonne j'ai une série de lettres unique par cellule ou composée et séparée par des virgules. Certaines lettres sont obsolètes. Pour les modifier je passe par rechercher remplacer (Ctrl H) mais la manip est longue compte tenu du nombre de ligne.
D
J, M
U
E
V
P
B
T
9
D, E, X
0, N
0, J, M
3, 9
0, 4, D, E, S, U, X
J, S
P, S
J, T
4, J, S, T
D, E, S
E, S
&
D, E, J, S
$, T
C, D, E, J, S
4, 9, D, E, J, K, P, S, X
D, F, J
N
0, D, E, J, M, S, X
D, E, J, P
Je voudrais remplacer les C, *,$
Auriez vous une formule à me proposer
Merci par avance
Bonjour et bienvenue,
CTRL+H
Dans la ligne rechercher: C, *,$
Dans la ligne remplacer: "ton nouveau texte"
puis l'option Remplacer tout
cordialement
Bonjour
et merci au nombreuses personnes qui ont visualisé la question. La réponse qui m'a été faite ne répond pas à ma question car je n'ai pas était assez explicite et je remercie cette personne.
C'est simple avec une donnée mais dès que l'on passe sur une écriture multiple il faut rechercher dans un premier temps ces valeurs et puis les remplacer sans faire d'erreur sinon il supprime d'autre.
Exemples : Remplacer la valeur de N par S por ces valeurs multiples
*,5,9,N
8,*,C,4,U,W,N
A,B,C,D,N,8,4,3
Existe t il un autre par une formule ou par une macro de dire remplacer N par S dans toute la colonne ?
Merci de votre compréhension.
Cdlt
bonjour,
pourtant ctrl-H est la méthode la plus efficace pour obtenir le résultat que tu souhaites
pour les 3 cas : (tu peux ajouter le conditions de respect de la casse et de recherche sur contenu entier de la case (si nécessaire)
remplacer
*,5,9,N par *,5,9,S
8,*,C,4,U,W,N par 8,*,C,4,U,W,S
A,B,C,D,N,8,4,3 par A,B,C,D,S,8,4,3
h2so4 a écrit :bonjour,
pourtant ctrl-H est la méthode la plus efficace pour obtenir le résultat que tu souhaites
pour les 3 cas : (tu peux ajouter le conditions de respect de la casse et de recherche sur contenu entier de la case (si nécessaire)
remplacer
*,5,9,Npar*,5,9,S
8,*,C,4,U,W,Npar8,*,C,4,U,W,S
A,B,C,D,N,8,4,3parA,B,C,D,S,8,4,3
Bonjour
Tu m'avais convaincu d'utiliser contre H mais voilà je suis tombé sur hic
Dans mes données en voulant remplacer une valeur je n'avais fait attention qu'une valeur que je demandais de remplacer existait dans une chaîne ce qui fait que j'ai deux lettres dans la même chaîne de caractères.
Penses tu qu'il y ait un moyen de contrer ce couac ?
Merci par avance
jag83 a écrit :h2so4 a écrit :bonjour,
pourtant ctrl-H est la méthode la plus efficace pour obtenir le résultat que tu souhaites
pour les 3 cas : (tu peux ajouter les conditions de respect de la casse et de recherche sur contenu entier de la case (si nécessaire)
remplacer
*,5,9,Npar*,5,9,S
8,*,C,4,U,W,Npar8,*,C,4,U,W,S
A,B,C,D,N,8,4,3parA,B,C,D,S,8,4,3Bonjour
Tu m'avais convaincu d'utiliser contre H mais voilà je suis tombé sur hic
Dans mes données en voulant remplacer une valeur je n'avais fait attention qu'une valeur que je demandais de remplacer existait dans une chaîne ce qui fait que j'ai deux lettres dans la même chaîne de caractères.
Penses tu qu'il y ait un moyen de contrer ce couac ?
Merci par avance
Bonjour,
peux-tu illustrer ton problème ? à quel résultat t'attends-tu dans ce cas ?
h2so4 a écrit :jag83 a écrit :h2so4 a écrit :bonjour,
pourtant ctrl-H est la méthode la plus efficace pour obtenir le résultat que tu souhaites
pour les 3 cas : (tu peux ajouter les conditions de respect de la casse et de recherche sur contenu entier de la case (si nécessaire)
remplacer
*,5,9,Npar*,5,9,S
8,*,C,4,U,W,Npar8,*,C,4,U,W,S
A,B,C,D,N,8,4,3parA,B,C,D,S,8,4,3Bonjour
Tu m'avais convaincu d'utiliser contre H mais voilà je suis tombé sur hic
Dans mes données en voulant remplacer une valeur je n'avais fait attention qu'une valeur que je demandais de remplacer existait dans une chaîne ce qui fait que j'ai deux lettres dans la même chaîne de caractères.
Penses tu qu'il y ait un moyen de contrer ce couac ?
Merci par avance
Bonjour,
peux-tu illustrer ton problème ? à quel résultat t'attends-tu dans ce cas ?
Bonjour, pour illustrer mon problème je joins une petite liste.
D
J, M
U
4, 9, D, E, J, K, P, S, X
D, F, J
N
0, D, E, J, M, S, X
D, E, J, P
Si je change J par M, je vais avoir M, M il ne faudrait pas que cela se produise. Pour toute lettre déjà répertoriée, ne pas effectuer le changement.
Est ce possible ?
Cordialement
Bonjour,
il faudra passer par une macro qui supprime les doublons,
une proposition de macro à tester (ne fait pas le remplacement, mais supprime les doublons dans les séquences trouvées en colonne A
Sub test()
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
t = Split(Cells(i, 1), ", ")
flag = False
For j = LBound(t) To UBound(t) - 1
For k = j + 1 To UBound(t)
If t(j) = t(k) Then t(j) = "": flag = True: Exit For
Next k
Next j
If flag Then
sep = ""
s = ""
For j = LBound(t) To UBound(t)
If t(j) <> "" Then s = s & sep & t(j)
If s <> "" Then sep = ", "
Next j
Cells(i, 1) = s
End If
Next i
End Subh2so4 a écrit :Bonjour,
il faudra passer par une macro qui supprime les doublons,
une proposition de macro à tester (ne fait pas le remplacement, mais supprime les doublons dans les séquences trouvées en colonne A
Sub test() For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row t = Split(Cells(i, 1), ", ") flag = False For j = LBound(t) To UBound(t) - 1 For k = j + 1 To UBound(t) If t(j) = t(k) Then t(j) = "": flag = True: Exit For Next k Next j If flag Then sep = "" s = "" For j = LBound(t) To UBound(t) If t(j) <> "" Then s = s & sep & t(j) If s <> "" Then sep = ", " Next j Cells(i, 1) = s End If Next i End Sub
Bonsoir,
Ta macro fonctionne. j'ai refait des manipulations et je trouve très lourd la manip CTRL H.
Cordialement
Bonsoir,
bien sûr il est possible de programmer ce que tu fais en utilisant ctrl-H mais il faudra quand même indiquer ce que tu veux remplacer et par quoi ... je ne vois pas bien le gain que l'on pourrait faire. sauf si tu dois répéter cette opération régulièrement.
tu peux alors utiliser l'enregistreur une première fois et par la suite exécuter le code enregistré.
h2so4 a écrit :Bonsoir,
bien sûr il est possible de programmer ce que tu fais en utilisant ctrl-H mais il faudra quand même indiquer ce que tu veux remplacer et par quoi ... je ne vois pas bien le gain que l'on pourrait faire. sauf si tu dois répéter cette opération régulièrement.
tu peux alors utiliser l'enregistreur une première fois et par la suite exécuter le code enregistré.
Comme je ne suis pas un expert comme toi en macro, n'y a t il pas moyen de déclarer les variables dans un tableau soit pour remplacer ou pour supprimer et empêcher les écritures doubles.
qu'en penses tu ?
Cdlt
Bonsoir,
si tu donnes les indications précises de ce que tu veux faire, on doit pouvoir l'automatiser.
il faut donc que tu précises les données de départ, le résultat qu'il faut obtenir et les règles pour passer des données de départ au résultat.
un cas concret (avec les explications) dans un fichier est le plus efficace.
h2so4 a écrit :Bonsoir,
si tu donnes les indications précises de ce que tu veux faire, on doit pouvoir l'automatiser.
il faut donc que tu précises les données de départ, le résultat qu'il faut obtenir et les règles pour passer des données de départ au résultat.
un cas concret (avec les explications) dans un fichier est le plus efficace.
Bonsoir
je réfléchis au problème et je t'envoie un fichier
Bonne soirée et merci
h2so4 a écrit :Bonsoir,
bien sûr il est possible de programmer ce que tu fais en utilisant ctrl-H mais il faudra quand même indiquer ce que tu veux remplacer et par quoi ... je ne vois pas bien le gain que l'on pourrait faire. sauf si tu dois répéter cette opération régulièrement.
tu peux alors utiliser l'enregistreur une première fois et par la suite exécuter le code enregistré.
Bonjour,
Pour cette macro, je l'utilise effectivement régulièrement.
Avant de commencer mes données sont séparées par des virgules sous le format " B, N, Q; 1 " peut être à modifier avant ? car après ils seront " B;N;Q;1 "
Les données de base :
Les données ne sont pas connues d'avance (peut être définir une table pour mettre ces valeurs)
A remplacer ou à supprimer. Pour les données seules laisser la cellule vide mais ne pas supprimer la cellule.
Format des lettres : minuscules ou majuscules séparés par des points virgule sans espaces le contraire de ce qui a aujourd'hui. Nouveau format : B;1;7;9;Q
Pas de doublon après remplacement genre " K, K " ou K;K;1;2;5;O;*;/;µ;$;@
Les écritures : lettres seules, bloc de caractères, chiffres, ou caractères spéciaux.
Avec ces données, peux-tu faire quelque chose stp ?
Merci
Cdlt
bonsoir,
je t'ai fait une macro qui exécutera des commandes que tu mettras dans une feuille paramètres.
les commandes disponibles sont
remplacer une chaîne de caractères par une autre dans une colonne d'une feuille
supprimer une chaîne de caractères dans une colonne d'une feuille
supprimer les doublons dans une colonne d'une feuille
ci joint le fichier contenant la macro et des exemples de paramètres, tu devrais toujours laisser les 4 dernières lignes puisque celles-ci contiennent les instructions pour supprimer les doublons, remplacer les , par ; et faire le nettoyage qui reste à faire.
h2so4 a écrit :bonsoir,
je t'ai fait une macro qui exécutera des commandes que tu mettras dans une feuille paramètres.
les commandes disponibles sont
remplacer une chaîne de caractères par une autre dans une colonne d'une feuille
supprimer une chaîne de caractères dans une colonne d'une feuille
supprimer les doublons dans une colonne d'une feuille
ci joint le fichier contenant la macro et des exemples de paramètres, tu devrais toujours laisser les 4 dernières lignes puisque celles-ci contiennent les instructions pour supprimer les doublons, remplacer les , par ; et faire le nettoyage qui reste à faire.
Bonsoir
Déroulement du test effectué :
J'ai copié dans sheets 1 les données colonne A
Dans paramètres : cellule B1 j'ai entré la lettre J et cellule D1 j'ai entré la valeur M action macro les données ont été changé mais voilà des doublons.
j'ai supprimer J et M et j'ai lancé la macro de nouveau les doublons restent
J'ai râté quelque chose ?
Bonsoir,
l'exemple que j'ai donné fonctionne avec les paramètres que j'ai introduits. j'ai oublié de préciser que tu peux mettre autant de lignes de commande que tu le souhaites, elles doivent se suivre sans ligne vide. les colonnes rosées indiquent les parties qui doivent être complétées
Le séparateur pour la détection des doublons, doit être la virgule, sinon il faut ajouter en première ligne une commande pour remplacer les ; par ,
sinon pour t'aider davantage, il m'est difficile de comprendre ce qui ne va pas sans ton fichier.
h2so4 a écrit :Bonsoir,
l'exemple que j'ai donné fonctionne avec les paramètres que j'ai introduits. j'ai oublié de préciser que tu peux mettre autant de lignes de commande que tu le souhaites, elles doivent se suivre sans ligne vide. les colonnes rosées indiquent les parties qui doivent être complétées
Le séparateur pour la détection des doublons, doit être la virgule, sinon il faut ajouter en première ligne une commande pour remplacer les ; par ,
sinon pour t'aider davantage, il m'est difficile de comprendre ce qui ne va pas sans ton fichier.
bonjour
je te joins le fichier avec mon essai, tu pourras t'apercevoir que le M est doublé dans certaines cellules.
A te lire bientôt
Cdlt
jag83 a écrit :h2so4 a écrit :Bonsoir,
l'exemple que j'ai donné fonctionne avec les paramètres que j'ai introduits. j'ai oublié de préciser que tu peux mettre autant de lignes de commande que tu le souhaites, elles doivent se suivre sans ligne vide. les colonnes rosées indiquent les parties qui doivent être complétées
Le séparateur pour la détection des doublons, doit être la virgule, sinon il faut ajouter en première ligne une commande pour remplacer les ; par ,
sinon pour t'aider davantage, il m'est difficile de comprendre ce qui ne va pas sans ton fichier.
bonjour
je te joins le fichier avec mon essai, tu pourras t'apercevoir que le M est doublé dans certaines cellules.
A te lire bientôt
le fichier arrive
Cdlt
jag83 a écrit :h2so4 a écrit :Bonsoir,
l'exemple que j'ai donné fonctionne avec les paramètres que j'ai introduits. j'ai oublié de préciser que tu peux mettre autant de lignes de commande que tu le souhaites, elles doivent se suivre sans ligne vide. les colonnes rosées indiquent les parties qui doivent être complétées
Le séparateur pour la détection des doublons, doit être la virgule, sinon il faut ajouter en première ligne une commande pour remplacer les ; par ,
sinon pour t'aider davantage, il m'est difficile de comprendre ce qui ne va pas sans ton fichier.
bonjour
je te joins le fichier avec mon essai, tu pourras t'apercevoir que le M est doublé dans certaines cellules.
A te lire bientôt
Cdlt
jag83 a écrit :h2so4 a écrit :Bonsoir,
l'exemple que j'ai donné fonctionne avec les paramètres que j'ai introduits. j'ai oublié de préciser que tu peux mettre autant de lignes de commande que tu le souhaites, elles doivent se suivre sans ligne vide. les colonnes rosées indiquent les parties qui doivent être complétées
Le séparateur pour la détection des doublons, doit être la virgule, sinon il faut ajouter en première ligne une commande pour remplacer les ; par ,
sinon pour t'aider davantage, il m'est difficile de comprendre ce qui ne va pas sans ton fichier.
bonjour
je te joins le fichier avec mon essai, tu pourras t'apercevoir que le M est doublé dans certaines cellules.
A te lire bientôt
le fichier arrive
Cdlt
Re
Un oubli peux tu faire partir la commande à partir de A2 dans le sheet1, je pourrais mettre un filtre.
Est ce que la macro que tu m'avais la 1ere fois qui supprimait les doubles lettres va dans le sens du doublon de ta nouvelle macro. Jes suis en train de me dire que j'ai peut être fait une erreur de language en parlant de doublon ?
cdlt
Bonjour,
j'ai lancé la macro sur le fichier que tu as donné, je ne vois pas de doublons. j'ai cependant corrigé un bug (la suppression des doublons ne se faisait que dans la colonne A.
la suppression des doublons correspond à ta demande initiale qui était éliminer les lettres en double sur une même ligne.
enfin ton souhait pour voir la macro s'exécuter à partir de la ligne 2 a été ajouté.
edit : correction faute d'orthographe monstrueuse