Formule pour effacer le caractere precedent une lettre

Fermé
Alex44000 - 24 avril 2017 à 09:59
via55 Messages postés 14499 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 novembre 2024 - 24 avril 2017 à 21:32
Bonjour,

Je cherche a automatiser l'effacement du caractere qui se situe avant les '££' ainsi que les '££' dans la chaine de caractere suivante :

(ABC;1££DEF;2$$GHI;3££JKLM; etc...
Ou la suite de lettre peut faire 3 ou 4 caracteres

Et le resultat attendu :
(ABC;DEF;GHI;JKLM;...

J'ai essaye en splittant la chaine de caractere en utilisant le ';' comme delimiteur puis en effacer les 3 premiers caracteres avec la formule DROITE, pour enfin reaasembler la chaine de caractere. Cependant, je dois a chaque fois passer par le menu pour faire les operations. Je cherche donc la formule qui me permet de faire 'effacer un caractere avant '££'. Je rajouterai par la suite une formule pour supprimer les '££'.

Ca fait 2 heures que je cherche une solution en vain.
A voir également:

4 réponses

Merci pour ta reponse. Le probleme c est de supprimer le caractere precedent qui est aleatoire, et ca de facon automatise.
0
Mike-31 Messages postés 18347 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 25 novembre 2024 5 104
Modifié le 24 avril 2017 à 10:50
Re,

merci pour ton -1 et excuse moi d'avoir essayé de t'aider, mais je ne suis pas rancunier, voila une formule qui supprime toute tes valeurs numériques devant tes £ et tes £

=SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A3;1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;"");0;"");"£";"")

merci
A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0
via55 Messages postés 14499 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 novembre 2024 2 735
24 avril 2017 à 21:32
Bonsoir à vous deux

Une solution avec une fonction personnalisée (si j'ai bien compris ce qui est recherché !)
Fonction à mettre dans un module de l’éditeur VBA (ALT+F11 pour ouvrir l’éditeur - Insertion - Module - copier coller la fonction dans la page - fermer éditeur)
La fonction s'utilise ensuite comme toute fonction Excel
avec par exemple ta chaine en A1 en B1 taper = epuration(A1)
Function epuration(plage As Range)
remplace1 = Application.WorksheetFunction.Substitute(plage.Value, "££", "")
remplace2 = Application.WorksheetFunction.Substitute(remplace1, "$$", "")
  tableau = Split(remplace2, ";")
  result = tableau(0)
  For n = 1 To UBound(tableau)
  result = result & ";" & Right(tableau(n), Len(tableau(n)) - 1)
  Next n
  epuration = result
End Function


Cdlmnt
Via
0
Mike-31 Messages postés 18347 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 25 novembre 2024 5 104
Modifié le 24 avril 2017 à 10:06
Bonjour,

tu as un outils pour cela, sélectionne ta plage à traiter et Remplacer
dans Rechercher saisir £ et ne rien saisir dans Remplacer et clic sur remplacer
ou sur Remplacer tout pour une solution rapide
A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
-1
L'idee c est juste de classifier les reponses, ce n est pas contre toi. D ailleurs, merci d'avoir pris le temps de donner une 2nde reponse. J ai passe plusieurs heures sur des sujets similaires ou la reponse n etait pas coherente avec la question posee. Je vais essaye la formule que tu as poste et si ca repond a mon probleme, je mettrai le +1 pour que les futurs visiteurs de la page trouvent la reponse a leur probleme rapidement. :)
0
Mike-31 Messages postés 18347 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 25 novembre 2024 5 104 > Alex44000
Modifié le 24 avril 2017 à 11:15
Re,

ce n'est pas comme cela que fonctionne la classification des réponses et ne joue pas à ce jeu au risque de te passer de réponse
0