Modifier un des caractères dans une chaine de caracteres

Résolu
ClaudeDordogne Messages postés 47 Statut Membre -  
ClaudeDordogne Messages postés 47 Statut Membre -
Bonjour,

j'utilise VBA de excel 2007

j'ai une string : "abcdefgh" (de longueur variable)
et je désire changer un caractère de cette chaîne.

par exemple le 4 ème (le "d") que je veux changer en "s" par exemple
(mais sa place doit pouvoir être variable)

dans cet exemple
"abcdefgh" deviendrait "abcsefgh"

merci de votre aide :)

car malgré divers essais avec les fonctions de manipulation de chaîne... je rame :(
Très cordialement
Claude

5 réponses

  1. Zoul67 Messages postés 2001 Statut Membre 149
     
    Bonjour

    Claude mentionne "le 4è", ce qui laisse à penser qu'on indique le rang du caractère et pas le caractère lui-même.

    a=ActiveCell.Value
    r=InputBox("Quel rang ?")
    n=InputBox("Quelle nouvelle lettre ?")
    rempl=Left(a,r-1) & n & Right(a,Len(a)-r)
    ActiveCell.Value=rempl


    A+
    1
  2. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonjour Claude, bonjour le forum,

    As-tu essayer avec Replace ?
    0
  3. ClaudeDordogne Messages postés 47 Statut Membre
     
    Merci Thau Theme pour ta réponse.
    MERCI Zoul67 pour ta réponse claire, rapide et effiocace :)

    un truc en plus, si je peux demander :
    si on veut remplacer non pas 1 mais 2 ou 3 caractères consécutifs?
    (on défini avant si 2 ou 3, et la place du 1er
    exemple : "abcdefgh",
    on veut remplacer 2 caracteres
    a partir du 4 ème
    "de" devient "zg"
    donc à partir de "abcdefgh"on obtient "abczgfgh"
    on indique le rang du caractère et pas le caractère lui-même.

    Merci et Très Cordialement
    Claude
    0
    1. Zoul67 Messages postés 2001 Statut Membre 149
       
      a=ActiveCell.Value
      r=InputBox("Quel rang ?")
      n=InputBox("Quelle(s) nouvelle(s) lettre(s) ?")
      rempl=Left(a,r-1) & n & Right(a,Len(a)-r+1-Len(n))
      ActiveCell.Value=rempl
      0
  4. PlacageGranby Messages postés 402 Statut Membre 26
     
    Bonjour Claude,

    Il y a plein de fonction pour manipuler des chaines de texte.
    https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/

    InStr me semble une possibilité si le rang du texte a changer est inconnu.

    Dans le lien, il y a les fonction left, right, len utilisé dans les exemples précédents et aussi quelques autres.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ClaudeDordogne Messages postés 47 Statut Membre
     
    Bonsoir,
    Tout d'abord Merci
    Merci à Zoul67 , Merci à Thau Theme, Merci à PlacageGranby
    pour votre aide qui m'a permis de résoudre ce problème
    Grâce à vous, je peux marquer "Résolu" :))

    https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/ va me permettre de bien approfondir mon VBA
    Très Cordialement
    Claude
    0