Formule pour effacer le caractere precedent une lettre

Alex44000 -  
via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   -
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.

4 réponses

  1. Alex44000
     
    Merci pour ta reponse. Le probleme c est de supprimer le caractere precedent qui est aleatoire, et ca de facon automatise.
    0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. Alex44000
       
      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
      1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147 > Alex44000
         
        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