supprimer de le début d'une chainte de caractère

  • Auteur de la discussion darkspoilt
  • Date de début

darkspoilt

Expert
Bonjour,
Je voudrais savoir si c'est possible de virer le début d'une chaine de caractère

exemple dans ma cellule Excel j'ai "Identifiant: xxxxxxxxxxxx"
et j'aimerais avoir "xxxxxxxxxxxx" le probleme est que la longueur est aléatoire et je voulais savoir s'il n'y avait pas un autre moyen que la fonction Mid avec un grand nombre pour résoudre mon problème?
 

zeb

Modérateur
Il ne me semble pas que le paramètre Length soit obligatoire ! :??:
Si c'est là ton problème. :o
 

darkspoilt

Expert
ah m*****....
ta pas un autre truc??
Sinon un truc comme ça c'est possible a ton avis tu crois que
un code comme ca ca va marché?
[cpp]Range("A3").FormulaR1C1=Mid(Range("A3").FormulaR1C1,5,20)[/cpp]

 

glop-glop-81

Nouveau membre
Dans EXCEL, tu combines la fonction CHERCHE qui te donne la position d'un caractère et la fonction STXT qui extrait les caractères d'une chaine à partir d'une certaine position.
Dans ton exemple "ident: xxxxxx" ça donne: STXT(A2;CHERCHE(":";A2)+2;20) où A2 est la chaine de caractère "ident: xxxxx", le point de départ est ":" et +2 pour enlever le caractère "espace"
Si ça peut t'aider...
 

darkspoilt

Expert
Bah ca revient au meme que de faire un Mid mais en plus jeveux remplacer la cellule qui contient "ident: xxxxxx" par "xxxxxx" dans la meme feuille ce qui fait que ta fonction ne peut pas fonctionner.
Mais c'est sympa en tout cas
 

zeb

Modérateur


Ben certainement pas !!!!
Ce n'est pas la formule qu'il faut retailler.

Et puis tu cherches à mettre le tout dans une formule ou à le faire en VB ?
Tu parles de remplacer ident: xxxxxxxx par xxxxxxxx je suppose donc que tu veux faire une passe en VB.

[cpp]debut_a_virer = "ident: "
If Left(Range("A3").Text, Len(debut_a_virer)) = debut_a_virer Then
Range("A3").Text =Mid(Range("A3").Value, Len(debut_a_virer)+1)
End If[/cpp]
 

Freeman23

Expert
Slt,

Zeb je suis pas trop d'accord avec ton code :)D) à la limite un like ca marcherait.
Code:
debut_a_virer = "ident: "
If Range("A3" ).Text like debut_a_virer & "*" Then
    Range("A3" ).Text =Mid(Range("A3" ).Value, Len(debut_a_virer))
End If
 

zeb

Modérateur
Il est très bien mon code... une fois édité. :sarcastic:
Surtout que le tien, il garde le dernier caractère à supprimer :kaola:


/private
:hello: Freeman. De retour sur PPC ?
T'as vu, on dit THFR maintenant. C'est comme PPC, mais en rouge :D
 

Freeman23

Expert
J'ai jamais vraiment quitté le forum :D

/private
:hello: Disons que je suis resté cloitré à l'hosto 10 jours et 1 mois de convalescense :lol:

Mais sinon content de te re-lire
 

darkspoilt

Expert
Pareil freeman bah en fait je veux mettre tout dans une formule d'ou mon code il est crade j'avoue mais fonctionnel

[cpp]Range("A3" ).FormulaR1C1=Mid(Range("A3" ).FormulaR1C1,5)[/cpp]

Après explique ou est le problème la dedans? quel erreur cela peut produire?
 

zeb

Modérateur
Ça devrait fonctionner.
A part que je n'ai toujours pas compris pourquoi tu t'entêtes avec des .FormulaR1C1 là où un .Text suffit.

"ident: " ça prend 7 caractères avec l'espace, donc :
Code:
Range("A3" ).Value=Mid(Range("A3" ).Text, 8)
 

zeb

Modérateur
>>> en tout cas
Non, non, non. Il faut que tu comprennes pourquoi !

>>> merci bcp
Je t'en prie :merci:
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 136
Messages
6 718 114
Membres
1 586 397
Dernier membre
Chachabidou
Partager cette page
Haut