OVH Cloud OVH Cloud

oter chaine de caractère et une seule

9 réponses
Avatar
jipeache
bonjour,
dans une cellule j'ai plusieurs fois la succession " $ " (espace-
dollar-espace) qui est un rep=E8re pour un import dans un autre logiciel
(marque de retour =E0 la ligne). le pb est que j'ai cette chaine en
d=E9but de cellule et que je souhaiterais l'enlever uniquement en d=E9but
et non dans le reste o=F9 elle figure aussi plusieurs fois.
Ex : " $ Plan l=E9gend=E9 des anciens r=E9fectoire, cuisine, salle
d'audience, salon, clo=EEtre, infirmerie et orangerie. Extrait de 27 R
9=2E $ s.d. (d=E9but 19e si=E8cle) $ O. Ms, papier, encre noir et rouge,
lavis rose, jaune et gris, =E9chelle : 30m =3D 13,6cm (1/220,59e) $ 106,8
x 91,7".
Comment enlever uniquement le 1er " $ " avant "Plan l=E9gend=E9..." pour
ne pas avoir de retour =E0 la ligne au d=E9but dans mon import mais en
conservant les autres ?
Merci

9 réponses

Avatar
JB
Bonjour,

=STXT(A1;2;9999)

JB

On 15 fév, 09:57, "jipeache" wrote:
bonjour,
dans une cellule j'ai plusieurs fois la succession " $ " (espace-
dollar-espace) qui est un repère pour un import dans un autre logiciel
(marque de retour à la ligne). le pb est que j'ai cette chaine en
début de cellule et que je souhaiterais l'enlever uniquement en début
et non dans le reste où elle figure aussi plusieurs fois.
Ex : " $ Plan légendé des anciens réfectoire, cuisine, salle
d'audience, salon, cloître, infirmerie et orangerie. Extrait de 27 R
9. $ s.d. (début 19e siècle) $ O. Ms, papier, encre noir et rouge,
lavis rose, jaune et gris, échelle : 30m = 13,6cm (1/220,59e) $ 106,8
x 91,7".
Comment enlever uniquement le 1er " $ " avant "Plan légendé..." pour
ne pas avoir de retour à la ligne au début dans mon import mais en
conservant les autres ?
Merci


Avatar
Youky
Une petite macro si les données sont en col A

For k = 1 To [A65536].End(3).Row
If Left(Cells(k, 1), 3) = " $ " Then
Cells(k, 1) = Right(Cells(k, 1), Len(Cells(k, 1)) - 3)
End If
Next

ouky

"JB" a écrit dans le message de news:

Bonjour,

=STXT(A1;2;9999)

JB

On 15 fév, 09:57, "jipeache" wrote:
bonjour,
dans une cellule j'ai plusieurs fois la succession " $ " (espace-
dollar-espace) qui est un repère pour un import dans un autre logiciel
(marque de retour à la ligne). le pb est que j'ai cette chaine en
début de cellule et que je souhaiterais l'enlever uniquement en début
et non dans le reste où elle figure aussi plusieurs fois.
Ex : " $ Plan légendé des anciens réfectoire, cuisine, salle
d'audience, salon, cloître, infirmerie et orangerie. Extrait de 27 R
9. $ s.d. (début 19e siècle) $ O. Ms, papier, encre noir et rouge,
lavis rose, jaune et gris, échelle : 30m = 13,6cm (1/220,59e) $ 106,8
x 91,7".
Comment enlever uniquement le 1er " $ " avant "Plan légendé..." pour
ne pas avoir de retour à la ligne au début dans mon import mais en
conservant les autres ?
Merci


Avatar
JB
=STXT(A1;4;9999)

En VBA:

For Each c In Range([a1], [A65000].End(xlUp))
c.Value = Mid(c, 4)
Next c

JB

On 15 fév, 09:57, "jipeache" wrote:
bonjour,
dans une cellule j'ai plusieurs fois la succession " $ " (espace-
dollar-espace) qui est un repère pour un import dans un autre logiciel
(marque de retour à la ligne). le pb est que j'ai cette chaine en
début de cellule et que je souhaiterais l'enlever uniquement en début
et non dans le reste où elle figure aussi plusieurs fois.
Ex : " $ Plan légendé des anciens réfectoire, cuisine, salle
d'audience, salon, cloître, infirmerie et orangerie. Extrait de 27 R
9. $ s.d. (début 19e siècle) $ O. Ms, papier, encre noir et rouge,
lavis rose, jaune et gris, échelle : 30m = 13,6cm (1/220,59e) $ 106,8
x 91,7".
Comment enlever uniquement le 1er " $ " avant "Plan légendé..." pour
ne pas avoir de retour à la ligne au début dans mon import mais en
conservant les autres ?
Merci


Avatar
jipaih
Bonjour,

=STXT(A1;2;9999)



Merci
effectivement ça fonctionne, mais en mettant 4 à la place de 2 ?
Par contre je ne comprends pas trop la fonction dont l'explication n'est pas
très claire dans excel.

(réponse du domicile)
Avatar
jipaih
En VBA:

For Each c In Range([a1], [A65000].End(xlUp))
c.Value = Mid(c, 4)
Next c


Merci, pas encore testé, je verrai lundi car pas de boulot demain.
Cela me reservira certainement, souvent ce genre de truc à gérer au
boulot....

(réponse du domicile)
Avatar
anonymousA
Bonjour,

STXT est un couteau à découper les chaines de caractères. le deuxiè me
argument en l'occurrence ici la valeur 2 détermine le N° du caractère
dans la chaine de caractères en amont duquel où Excel pose son 1er
couteau , puis le 3eme argument en l'occurence ici 9999 détermine le
nombre de caractères au delà du précédent où Excel pose son 2eme
couteau.
Si la longueur réelle de ce qui reste de la chaine est inférieure à ce
troisième argument, alors Excel renvoie tout ce qu'il y a après le 1er
caractère désigné par le 1er couteau.

A+

On 15 fév, 17:42, "jipaih" wrote:
Bonjour,

=STXT(A1;2;9999)

Merci
effectivement ça fonctionne, mais en mettant 4 à la place de 2 ?
Par contre je ne comprends pas trop la fonction dont l'explication n'est pas
très claire dans excel.

(réponse du domicile)


Avatar
jipaih
"STXT est un couteau à découper les chaines de caractères. le deuxième
argument en l'occurrence ici la valeur 2 détermine le N° du caractère
dans la chaine de caractères en amont duquel où Excel pose son 1er
couteau , puis le 3eme argument en l'occurence ici 9999 détermine le
nombre de caractères au delà du précédent où Excel pose son 2eme
couteau.
Si la longueur réelle de ce qui reste de la chaine est inférieure à ce
troisième argument, alors Excel renvoie tout ce qu'il y a après le 1er
caractère désigné par le 1er couteau.

Ok merci, donc ca ne fonctionne qu'en début de cellule?
Avatar
anonymousA
mais non. Si en cellule A1 est écrit ABCDE, alors écrire en B1 la
formule =STXT(3,2) renverra la valeur CD puisque le 3eme caractère est C
et que 2 caractères comptés avec un couteau en amont du caractère C sont
C et D.

A+



"STXT est un couteau à découper les chaines de caractères. le deuxième
argument en l'occurrence ici la valeur 2 détermine le N° du caractère
dans la chaine de caractères en amont duquel où Excel pose son 1er
couteau , puis le 3eme argument en l'occurence ici 9999 détermine le
nombre de caractères au delà du précédent où Excel pose son 2eme
couteau.
Si la longueur réelle de ce qui reste de la chaine est inférieure à ce
troisième argument, alors Excel renvoie tout ce qu'il y a après le 1er
caractère désigné par le 1er couteau.

Ok merci, donc ca ne fonctionne qu'en début de cellule?




Avatar
jipaih
"anonymousA" a écrit dans le message de news:
45d4a768$0$21145$
mais non. Si en cellule A1 est écrit ABCDE, alors écrire en B1 la formule
=STXT(3,2) renverra la valeur CD puisque le 3eme caractère est C et que 2
caractères comptés avec un couteau en amont du caractère C sont C et D.

D'accord, compris, merci.