Manipulation de caractères

Bonjour à tous est par avance merci pour l'aide que vous allez m'apporter.

Dans la fonction "Replace" je veux supprimer une chaine de caractères exemple:

Replace(Cells(i,j).Value = Replace(Cells(i,j).value, "dotexteben", "")

Problème dans "dotexteben", texte correspond à une chaine de caractère variable. J'ai essayé de mettre "*" ("do*ben") et même (do%ben), à la place de "texte", qui devrait remplacer plusieurs caractères mais cela ne fonctionne pas.

Y-a-t-il une solution? et si oui laquelle?

Avec mes remerciements

paterbleutch

bonsoir paterbleutch,

avez-vous un fichier avec quelques exemples pour voir ce que vous voulez ? Donc source et résultat

Bonsoir,

un essai de syntaxe :
Cells(i,j).Value = Replace(Cells(i,j).value, "do" & VariableText & "ben", "")

VariableText est une variable avec le texte voulu. Après regardez un peu la syntaxe finale de l'instruction par rapport à la votre.
La valeur de la cellule "i,j" est égale à sa valeur dont on remplace do & le texte variable et ben, par un double guillemet donc rien.

@ bientôt

LouReeD

Bonsoir Paterbleutch, le Fil,

Si c'est pour remplacer dans une boucle x, y

Alors utilise une condition:

If left(Cells(x,y),2) = "do" and right(cells(x,y), 3) = "ben" and len(cells(x, y) >5 then Cells(1,5)=""

bonjour le fil,

une autre méthode

Sub test()
     s1 = "do": s2 = "ben"
     For Each c In Range("A1:D20").Cells
          s = c.Value2
          i1 = InStr(1, s, s1, 1)            'trouver chaîne "DO" ou "do" ou "Do" ou "dO"
          If i1 > 0 Then                     'trouvé !!!
               'méthode 1
               i2 = InStr(i1 + 1, s, s2, 1)     'trouver le premier "ben" (+variantes) après le"DO"
               'méthode 2
               i3 = InStrRev(s, s2, , 1)     'trouver le dernier "ben" (même avant ce "do")
               'dépendant de la méthode, on prend i2 ou i3
               If i3 > i1 Then c.Value = Left(s, i1 - 1) & Mid(s, i3 + Len(s2))
          End If
     Next
End Sub

Bonjour à tous,

BsAlv, X Cellus, LouReeD, merci pour vos réponses, mes capacités en excel vba, s'améliorent mais elles sont largement insuffisantes pour comprendre instantanément les codes que vous me proposer. J'analyse et je reviens

Bonjour

Problème dans "dotexteben", texte correspond à une chaine de caractère variable. J'ai essayé de mettre "*" ("do*ben") et même (do%ben), à la place de "texte", qui devrait remplacer plusieurs caractères mais cela ne fonctionne pas.

ok sauf que la on a un e erreur Conceptuelle dans le raisonnement (sauf paramètre plus précis sur le joker)

imaginons que la chaine soit " se soir toto ira dormir chez son ami ben la malice "

ça donnerait

" se soir toto ira la malice "

la tout d'un coup c'est moins bien l'idée du replace

patrickT, il est vrai que si l'on regarde "plus large" le replace n'est pas forcément la bonne solution si ce n'est que la demande est là et en effet un peu juste pour une réponse adéquate !
Maintenant le demandeur à réagit reste plus qu'à attendre son prochain retour.

@ bientôt

LouReeD

Rechercher des sujets similaires à "manipulation caracteres"