Dans une cellule j'ai les chaines de caractère suivantes :
Club Pts J G N P F Bp Bc Pé Dif
et
Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10
points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro
en mode enregistrement et faire les manipulations suivantes :
ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10
espaces par Point Virgule
j'ai obtenu comme résultat :
Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif
Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour
la suivante.
Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère
au maximum.
Peut-être avec cette fonction trouvée dans un post:
Voici une fonction VBA qui effectue un remplacement de caractère: ( par exemple : =StrReplace(A25; "!"; "") ================================================ Function StrReplace(cible, anc, nouv) z = 1 travail = cible StrReplace = "" While Len(travail) > 0 zz = InStr(z, travail, anc) If (zz = 0) Then GoTo fin StrReplace = StrReplace & Left(travail, zz - 1) & nouv travail = Right(travail, Len(travail) - zz - Len(anc) + 1) Wend fin: StrReplace = StrReplace & travail End Function ============================================
Fetnat
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro en mode enregistrement et faire les manipulations suivantes : ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10 espaces par Point Virgule
j'ai obtenu comme résultat : Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour la suivante. Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère au maximum.
Si vous avez une solution à me suggérer Merci
Xavier
Bonjour,
Peut-être avec cette fonction trouvée dans un post:
Voici une fonction VBA qui effectue un
remplacement de caractère: ( par exemple : =StrReplace(A25; "!"; "")
================================================ Function StrReplace(cible, anc, nouv)
z = 1
travail = cible
StrReplace = ""
While Len(travail) > 0
zz = InStr(z, travail, anc)
If (zz = 0) Then GoTo fin
StrReplace = StrReplace & Left(travail, zz - 1) & nouv
travail = Right(travail, Len(travail) - zz - Len(anc) + 1)
Wend
fin: StrReplace = StrReplace & travail
End Function
============================================
Fetnat
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes :
Club Pts J G N P F Bp Bc Pé Dif
et
Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10
points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro
en mode enregistrement et faire les manipulations suivantes :
ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10
espaces par Point Virgule
j'ai obtenu comme résultat :
Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif
Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour
la suivante.
Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère
au maximum.
Peut-être avec cette fonction trouvée dans un post:
Voici une fonction VBA qui effectue un remplacement de caractère: ( par exemple : =StrReplace(A25; "!"; "") ================================================ Function StrReplace(cible, anc, nouv) z = 1 travail = cible StrReplace = "" While Len(travail) > 0 zz = InStr(z, travail, anc) If (zz = 0) Then GoTo fin StrReplace = StrReplace & Left(travail, zz - 1) & nouv travail = Right(travail, Len(travail) - zz - Len(anc) + 1) Wend fin: StrReplace = StrReplace & travail End Function ============================================
Fetnat
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro en mode enregistrement et faire les manipulations suivantes : ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10 espaces par Point Virgule
j'ai obtenu comme résultat : Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour la suivante. Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère au maximum.
Si vous avez une solution à me suggérer Merci
Xavier
Modeste
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
par formule =SUBSTITUE(A1;" ";CAR(59))
par VBA Sub changeNewX() For Each cellule In Range("A1:A21") cellule.Value = Application.Substitute(cellule, " ", Chr(59)) Next End Sub
-- -- @+ ;o)))
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes :
Club Pts J G N P F Bp Bc Pé Dif
et
Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10
points virgule (ou autre symbole de séparateur).
par formule
=SUBSTITUE(A1;" ";CAR(59))
par VBA
Sub changeNewX()
For Each cellule In Range("A1:A21")
cellule.Value = Application.Substitute(cellule, " ", Chr(59))
Next
End Sub
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
par formule =SUBSTITUE(A1;" ";CAR(59))
par VBA Sub changeNewX() For Each cellule In Range("A1:A21") cellule.Value = Application.Substitute(cellule, " ", Chr(59)) Next End Sub
-- -- @+ ;o)))
Daniel
Bonjour. Je n'ai pas trop compris ton problème... Si tu sélectionnes la plage et que tu fais un "remplacer" " " par ";" ? Cordialement. Daniel "newsX" a écrit dans le message de news: evkpfd$5o7$
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro en mode enregistrement et faire les manipulations suivantes : ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10 espaces par Point Virgule
j'ai obtenu comme résultat : Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour la suivante. Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère au maximum.
Si vous avez une solution à me suggérer Merci
Xavier
Bonjour.
Je n'ai pas trop compris ton problème... Si tu sélectionnes la plage et que
tu fais un "remplacer" " " par ";" ?
Cordialement.
Daniel
"newsX" <hdi.idf.NoSpam@free.fr> a écrit dans le message de news:
evkpfd$5o7$1@aioe.org...
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes :
Club Pts J G N P F Bp Bc Pé Dif
et
Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10
points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro
en mode enregistrement et faire les manipulations suivantes :
ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10
espaces par Point Virgule
j'ai obtenu comme résultat :
Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif
Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas
pour la suivante.
Au total je devrais avoir à répéter cette macro sur 21 chaines de
caractère au maximum.
Bonjour. Je n'ai pas trop compris ton problème... Si tu sélectionnes la plage et que tu fais un "remplacer" " " par ";" ? Cordialement. Daniel "newsX" a écrit dans le message de news: evkpfd$5o7$
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro en mode enregistrement et faire les manipulations suivantes : ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10 espaces par Point Virgule
j'ai obtenu comme résultat : Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour la suivante. Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère au maximum.
Si vous avez une solution à me suggérer Merci
Xavier
Bonjour "Daniel" wrote in message news:#
Bonjour. Je n'ai pas trop compris ton problème... Si tu sélectionnes la plage et que tu fais un "remplacer" " " par ";" ? Cordialement. Daniel "newsX" a écrit dans le message de news: evkpfd$5o7$
Quand le nom du club contient des espaces ils sont également remplacés, ce qui n'est pas l'effet souhaité Lens 2 --> Lens;2
-- Ricky [MVP] Visitez les FAQ... http://www.faqoe.com http://www.excelabo.net http://faqword.free.fr
Bonjour "Daniel" <dZZZcolardelle@free.fr> wrote in message news:#ma9I8NfHHA.4364@TK2MSFTNGP06.phx.gbl...
Bonjour.
Je n'ai pas trop compris ton problème... Si tu sélectionnes la plage et que tu fais un "remplacer" " " par ";" ?
Cordialement.
Daniel
"newsX" <hdi.idf.NoSpam@free.fr> a écrit dans le message de news: evkpfd$5o7$1@aioe.org...
Quand le nom du club contient des espaces ils sont également remplacés, ce qui n'est pas l'effet souhaité
Lens 2 --> Lens;2
--
Ricky [MVP] Visitez les FAQ...
http://www.faqoe.com
http://www.excelabo.net
http://faqword.free.fr
Bonjour. Je n'ai pas trop compris ton problème... Si tu sélectionnes la plage et que tu fais un "remplacer" " " par ";" ? Cordialement. Daniel "newsX" a écrit dans le message de news: evkpfd$5o7$
Quand le nom du club contient des espaces ils sont également remplacés, ce qui n'est pas l'effet souhaité Lens 2 --> Lens;2
-- Ricky [MVP] Visitez les FAQ... http://www.faqoe.com http://www.excelabo.net http://faqword.free.fr
newsX
Mon problème est que sur la 1ère chaine j'ai 10 espaces Club Pts J G N P F Bp Bc Pé Dif = 10 espaces et 11 dans la 2sd Lens 2 60 26 9 8 9 0 30 35 0 -5 = 11 espaces Seul les 10 espaces en partant de la droite doivent avoir un séparateur ("Lens 2" étant dans ce cas le contenu d'une cellule) et j'ai des cas où ... Saint Etienne 2 57 27 7 10 10 0 41 37 0 4 = 12 espaces Seul les 10 espaces en partant de la droite doivent avoir un séparateur ("Saint Etienne 2" étant dans ce cas le contenu d'une cellule)
La finalité étant de reconstituer un classement en mode de 11 colonnes.
Bonjour. Je n'ai pas trop compris ton problème... Si tu sélectionnes la plage et que tu fais un "remplacer" " " par ";" ? Cordialement. Daniel "newsX" a écrit dans le message de news: evkpfd$5o7$
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro en mode enregistrement et faire les manipulations suivantes : ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10 espaces par Point Virgule
j'ai obtenu comme résultat : Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour la suivante. Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère au maximum.
Si vous avez une solution à me suggérer Merci
Xavier
Mon problème est que sur la 1ère chaine j'ai 10 espaces
Club Pts J G N P F Bp Bc Pé Dif = 10 espaces
et 11 dans la 2sd
Lens 2 60 26 9 8 9 0 30 35 0 -5 = 11 espaces
Seul les 10 espaces en partant de la droite doivent avoir un séparateur
("Lens 2" étant dans ce cas le contenu d'une cellule)
et j'ai des cas où ...
Saint Etienne 2 57 27 7 10 10 0 41 37 0 4 = 12 espaces
Seul les 10 espaces en partant de la droite doivent avoir un séparateur
("Saint Etienne 2" étant dans ce cas le contenu d'une cellule)
La finalité étant de reconstituer un classement en mode de 11 colonnes.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
%23ma9I8NfHHA.4364@TK2MSFTNGP06.phx.gbl...
Bonjour.
Je n'ai pas trop compris ton problème... Si tu sélectionnes la plage et
que tu fais un "remplacer" " " par ";" ?
Cordialement.
Daniel
"newsX" <hdi.idf.NoSpam@free.fr> a écrit dans le message de news:
evkpfd$5o7$1@aioe.org...
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes :
Club Pts J G N P F Bp Bc Pé Dif
et
Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10
points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une
macro en mode enregistrement et faire les manipulations suivantes :
ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des
10 espaces par Point Virgule
j'ai obtenu comme résultat :
Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif
Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas
pour la suivante.
Au total je devrais avoir à répéter cette macro sur 21 chaines de
caractère au maximum.
Mon problème est que sur la 1ère chaine j'ai 10 espaces Club Pts J G N P F Bp Bc Pé Dif = 10 espaces et 11 dans la 2sd Lens 2 60 26 9 8 9 0 30 35 0 -5 = 11 espaces Seul les 10 espaces en partant de la droite doivent avoir un séparateur ("Lens 2" étant dans ce cas le contenu d'une cellule) et j'ai des cas où ... Saint Etienne 2 57 27 7 10 10 0 41 37 0 4 = 12 espaces Seul les 10 espaces en partant de la droite doivent avoir un séparateur ("Saint Etienne 2" étant dans ce cas le contenu d'une cellule)
La finalité étant de reconstituer un classement en mode de 11 colonnes.
Bonjour. Je n'ai pas trop compris ton problème... Si tu sélectionnes la plage et que tu fais un "remplacer" " " par ";" ? Cordialement. Daniel "newsX" a écrit dans le message de news: evkpfd$5o7$
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro en mode enregistrement et faire les manipulations suivantes : ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10 espaces par Point Virgule
j'ai obtenu comme résultat : Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour la suivante. Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère au maximum.
Si vous avez une solution à me suggérer Merci
Xavier
newsX
Merci,
j'ai pas tout compris mais je vais néanmoins essayer. Pourrais je répéter la fonction sur plusieurs lignes ?
Xavier
"fetnat" a écrit dans le message de news: %
Bonjour,
Peut-être avec cette fonction trouvée dans un post:
Voici une fonction VBA qui effectue un remplacement de caractère: ( par exemple : =StrReplace(A25; "!"; "") ================================================ > Function StrReplace(cible, anc, nouv) z = 1 travail = cible StrReplace = "" While Len(travail) > 0 zz = InStr(z, travail, anc) If (zz = 0) Then GoTo fin StrReplace = StrReplace & Left(travail, zz - 1) & nouv travail = Right(travail, Len(travail) - zz - Len(anc) + 1) Wend fin: StrReplace = StrReplace & travail End Function ============================================ >
Fetnat
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro en mode enregistrement et faire les manipulations suivantes : ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10 espaces par Point Virgule
j'ai obtenu comme résultat : Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour la suivante. Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère au maximum.
Si vous avez une solution à me suggérer Merci
Xavier
Merci,
j'ai pas tout compris mais je vais néanmoins essayer.
Pourrais je répéter la fonction sur plusieurs lignes ?
Xavier
"fetnat" <fetnat@gmail.com> a écrit dans le message de news:
%23dPKA4NfHHA.1240@TK2MSFTNGP04.phx.gbl...
Bonjour,
Peut-être avec cette fonction trouvée dans un post:
Voici une fonction VBA qui effectue un
remplacement de caractère: ( par exemple : =StrReplace(A25; "!"; "")
================================================ > Function StrReplace(cible, anc, nouv)
z = 1
travail = cible
StrReplace = ""
While Len(travail) > 0
zz = InStr(z, travail, anc)
If (zz = 0) Then GoTo fin
StrReplace = StrReplace & Left(travail, zz - 1) & nouv
travail = Right(travail, Len(travail) - zz - Len(anc) + 1)
Wend
fin: StrReplace = StrReplace & travail
End Function
============================================ >
Fetnat
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes :
Club Pts J G N P F Bp Bc Pé Dif
et
Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10
points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une
macro en mode enregistrement et faire les manipulations suivantes :
ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des
10 espaces par Point Virgule
j'ai obtenu comme résultat :
Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif
Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas
pour la suivante.
Au total je devrais avoir à répéter cette macro sur 21 chaines de
caractère au maximum.
j'ai pas tout compris mais je vais néanmoins essayer. Pourrais je répéter la fonction sur plusieurs lignes ?
Xavier
"fetnat" a écrit dans le message de news: %
Bonjour,
Peut-être avec cette fonction trouvée dans un post:
Voici une fonction VBA qui effectue un remplacement de caractère: ( par exemple : =StrReplace(A25; "!"; "") ================================================ > Function StrReplace(cible, anc, nouv) z = 1 travail = cible StrReplace = "" While Len(travail) > 0 zz = InStr(z, travail, anc) If (zz = 0) Then GoTo fin StrReplace = StrReplace & Left(travail, zz - 1) & nouv travail = Right(travail, Len(travail) - zz - Len(anc) + 1) Wend fin: StrReplace = StrReplace & travail End Function ============================================ >
Fetnat
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro en mode enregistrement et faire les manipulations suivantes : ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10 espaces par Point Virgule
j'ai obtenu comme résultat : Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour la suivante. Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère au maximum.
Si vous avez une solution à me suggérer Merci
Xavier
newsX
Merci
la formule fonction très bien mais j'obtiens partiellement le résultat souhaité. explication : Club Pts J G N P F Bp Bc Pé Dif devient Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif = OK
Lens 2 60 26 9 8 9 0 30 35 0 -5 devient Lens;2;60;26;9;8;9;0;30;35;0;-5 = KO le résultat souhaité est Lens 2;60;26;9;8;9;0;30;35;0;-5 (Lens 2 au lieu de Lens;2) Je souhaite remplacer seulement les 10er espaces en partant de la droite par 10 séparateurs et pas un de plus
Xavier
"Modeste" a écrit dans le message de news:
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
par formule =SUBSTITUE(A1;" ";CAR(59))
par VBA Sub changeNewX() For Each cellule In Range("A1:A21") cellule.Value = Application.Substitute(cellule, " ", Chr(59)) Next End Sub
-- -- @+ ;o)))
Merci
la formule fonction très bien mais j'obtiens partiellement le résultat
souhaité.
explication :
Club Pts J G N P F Bp Bc Pé Dif
devient
Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif = OK
Lens 2 60 26 9 8 9 0 30 35 0 -5
devient
Lens;2;60;26;9;8;9;0;30;35;0;-5 = KO
le résultat souhaité est
Lens 2;60;26;9;8;9;0;30;35;0;-5 (Lens 2 au lieu de Lens;2)
Je souhaite remplacer seulement les 10er espaces en partant de la droite par
10 séparateurs et pas un de plus
Xavier
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
eQb0z6NfHHA.1816@TK2MSFTNGP06.phx.gbl...
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes :
Club Pts J G N P F Bp Bc Pé Dif
et
Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10
points virgule (ou autre symbole de séparateur).
par formule
=SUBSTITUE(A1;" ";CAR(59))
par VBA
Sub changeNewX()
For Each cellule In Range("A1:A21")
cellule.Value = Application.Substitute(cellule, " ", Chr(59))
Next
End Sub
la formule fonction très bien mais j'obtiens partiellement le résultat souhaité. explication : Club Pts J G N P F Bp Bc Pé Dif devient Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif = OK
Lens 2 60 26 9 8 9 0 30 35 0 -5 devient Lens;2;60;26;9;8;9;0;30;35;0;-5 = KO le résultat souhaité est Lens 2;60;26;9;8;9;0;30;35;0;-5 (Lens 2 au lieu de Lens;2) Je souhaite remplacer seulement les 10er espaces en partant de la droite par 10 séparateurs et pas un de plus
Xavier
"Modeste" a écrit dans le message de news:
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
par formule =SUBSTITUE(A1;" ";CAR(59))
par VBA Sub changeNewX() For Each cellule In Range("A1:A21") cellule.Value = Application.Substitute(cellule, " ", Chr(59)) Next End Sub
-- -- @+ ;o)))
Modeste
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Je souhaite remplacer seulement les 10er espaces en partant de la droite par 10 séparateurs et pas un de plus
attention !!!!! il ne doit pas y avoir 2 espaces contigüs, ni d'espace final !!!!!!
Sub changeNewX() For Each cellule In Range("A1:A21") nbpv = 0 cible = cellule.Value For Position = Len(cible) To 1 Step -1 If Mid(cible, Position, 1) = " " Then Mid(cible, Position, 1) = ";" nbpv = nbpv + 1 End If If nbpv > 9 Then Exit For Next cellule.Value = cible Application.StatusBar = cible DoEvents Next End Sub
-- -- @+ ;o)))
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Je souhaite remplacer seulement les 10er espaces en partant de la droite par
10 séparateurs et pas un de plus
attention !!!!!
il ne doit pas y avoir 2 espaces contigüs, ni d'espace final
!!!!!!
Sub changeNewX()
For Each cellule In Range("A1:A21")
nbpv = 0
cible = cellule.Value
For Position = Len(cible) To 1 Step -1
If Mid(cible, Position, 1) = " " Then
Mid(cible, Position, 1) = ";"
nbpv = nbpv + 1
End If
If nbpv > 9 Then Exit For
Next
cellule.Value = cible
Application.StatusBar = cible
DoEvents
Next
End Sub
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Je souhaite remplacer seulement les 10er espaces en partant de la droite par 10 séparateurs et pas un de plus
attention !!!!! il ne doit pas y avoir 2 espaces contigüs, ni d'espace final !!!!!!
Sub changeNewX() For Each cellule In Range("A1:A21") nbpv = 0 cible = cellule.Value For Position = Len(cible) To 1 Step -1 If Mid(cible, Position, 1) = " " Then Mid(cible, Position, 1) = ";" nbpv = nbpv + 1 End If If nbpv > 9 Then Exit For Next cellule.Value = cible Application.StatusBar = cible DoEvents Next End Sub
-- -- @+ ;o)))
newsX
Je possède un handicap certain du fait que je n'y connais vraiment rien au VBA. Est il possible de détailler et d'expliquer chaque étape ?
Xavier
"Modeste" a écrit dans le message de news:
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Je souhaite remplacer seulement les 10er espaces en partant de la droite par 10 séparateurs et pas un de plus
attention !!!!! il ne doit pas y avoir 2 espaces contigüs, ni d'espace final !!!!!!
Sub changeNewX() For Each cellule In Range("A1:A21") nbpv = 0 cible = cellule.Value For Position = Len(cible) To 1 Step -1 If Mid(cible, Position, 1) = " " Then Mid(cible, Position, 1) = ";" nbpv = nbpv + 1 End If If nbpv > 9 Then Exit For Next cellule.Value = cible Application.StatusBar = cible DoEvents Next End Sub
-- -- @+ ;o)))
Je possède un handicap certain du fait que je n'y connais vraiment rien au
VBA.
Est il possible de détailler et d'expliquer chaque étape ?
Xavier
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
e7B6omOfHHA.1244@TK2MSFTNGP04.phx.gbl...
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Je souhaite remplacer seulement les 10er espaces en partant de la droite
par
10 séparateurs et pas un de plus
attention !!!!!
il ne doit pas y avoir 2 espaces contigüs, ni d'espace final
!!!!!!
Sub changeNewX()
For Each cellule In Range("A1:A21")
nbpv = 0
cible = cellule.Value
For Position = Len(cible) To 1 Step -1
If Mid(cible, Position, 1) = " " Then
Mid(cible, Position, 1) = ";"
nbpv = nbpv + 1
End If
If nbpv > 9 Then Exit For
Next
cellule.Value = cible
Application.StatusBar = cible
DoEvents
Next
End Sub
Je possède un handicap certain du fait que je n'y connais vraiment rien au VBA. Est il possible de détailler et d'expliquer chaque étape ?
Xavier
"Modeste" a écrit dans le message de news:
Bonsour® newsX avec ferveur ;o))) vous nous disiez :
Je souhaite remplacer seulement les 10er espaces en partant de la droite par 10 séparateurs et pas un de plus
attention !!!!! il ne doit pas y avoir 2 espaces contigüs, ni d'espace final !!!!!!
Sub changeNewX() For Each cellule In Range("A1:A21") nbpv = 0 cible = cellule.Value For Position = Len(cible) To 1 Step -1 If Mid(cible, Position, 1) = " " Then Mid(cible, Position, 1) = ";" nbpv = nbpv + 1 End If If nbpv > 9 Then Exit For Next cellule.Value = cible Application.StatusBar = cible DoEvents Next End Sub
-- -- @+ ;o)))
hasco
Une autre petite fonction qui semble remplir son devoir :
function ReplaceEspaceParPointVirgule(chaine As String) as string Dim Dep As Integer, i As Integer Dim tbl Dim tmp As String
tbl = Split(chaine, " ")
' Il y a moins de dix espace dans la chaine: on sort if ubound(tbl)<10 then exit function
'Eclater la chaine en tableau Dep = UBound(tbl) - 10 + 1
' si le tableau contient plus de 10 espace suivante ira de 0 à Dep -1 pour ' reconstituer la première partie de chaine ex (Auxerre 2)
For i = 0 To Dep - 1 tmp = tmp & tbl(i) & " " Next i tmp = Trim(tmp) & ";"
' la boucle suivante parcourera les 10 valeurs restantes du tableaux For i = Dep To UBound(tbl) tmp = tmp & tbl(i) & ";" Next i
' enlève le point-virgule final tmp = Left(tmp, Len(tmp) - 1)
'renvoi la nouvelle valeur chaine ReplaceEspaceParPointVirgule=tmp End Sub
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro en mode enregistrement et faire les manipulations suivantes : ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10 espaces par Point Virgule
j'ai obtenu comme résultat : Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour la suivante. Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère au maximum.
Si vous avez une solution à me suggérer Merci
Xavier
Une autre petite fonction qui semble remplir son devoir :
function ReplaceEspaceParPointVirgule(chaine As String) as string
Dim Dep As Integer, i As Integer
Dim tbl
Dim tmp As String
tbl = Split(chaine, " ")
' Il y a moins de dix espace dans la chaine: on sort
if ubound(tbl)<10 then exit function
'Eclater la chaine en tableau
Dep = UBound(tbl) - 10 + 1
' si le tableau contient plus de 10 espace suivante ira de 0 à Dep -1 pour
' reconstituer la première partie de chaine ex (Auxerre 2)
For i = 0 To Dep - 1
tmp = tmp & tbl(i) & " "
Next i
tmp = Trim(tmp) & ";"
' la boucle suivante parcourera les 10 valeurs restantes du tableaux
For i = Dep To UBound(tbl)
tmp = tmp & tbl(i) & ";"
Next i
' enlève le point-virgule final
tmp = Left(tmp, Len(tmp) - 1)
'renvoi la nouvelle valeur chaine
ReplaceEspaceParPointVirgule=tmp
End Sub
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes :
Club Pts J G N P F Bp Bc Pé Dif
et
Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10
points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro
en mode enregistrement et faire les manipulations suivantes :
ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10
espaces par Point Virgule
j'ai obtenu comme résultat :
Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif
Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour
la suivante.
Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère
au maximum.
Une autre petite fonction qui semble remplir son devoir :
function ReplaceEspaceParPointVirgule(chaine As String) as string Dim Dep As Integer, i As Integer Dim tbl Dim tmp As String
tbl = Split(chaine, " ")
' Il y a moins de dix espace dans la chaine: on sort if ubound(tbl)<10 then exit function
'Eclater la chaine en tableau Dep = UBound(tbl) - 10 + 1
' si le tableau contient plus de 10 espace suivante ira de 0 à Dep -1 pour ' reconstituer la première partie de chaine ex (Auxerre 2)
For i = 0 To Dep - 1 tmp = tmp & tbl(i) & " " Next i tmp = Trim(tmp) & ";"
' la boucle suivante parcourera les 10 valeurs restantes du tableaux For i = Dep To UBound(tbl) tmp = tmp & tbl(i) & ";" Next i
' enlève le point-virgule final tmp = Left(tmp, Len(tmp) - 1)
'renvoi la nouvelle valeur chaine ReplaceEspaceParPointVirgule=tmp End Sub
Bonjour,
Dans une cellule j'ai les chaines de caractère suivantes : Club Pts J G N P F Bp Bc Pé Dif et Lens 2 60 26 9 8 9 0 30 35 0 -5
Je souhaiterais remplacer les 10 espaces en partant de la droite par 10 points virgule (ou autre symbole de séparateur).
Dans un premier temps j'ai pensé que je pouvais m'en sortir avec une macro en mode enregistrement et faire les manipulations suivantes : ActiveCell.FormulaR1C1 puis avec CTRL SHIFT FLECHE remplacer chacun des 10 espaces par Point Virgule
j'ai obtenu comme résultat : Club;Pts;J;G;N;P;F;Bp;Bc;Pé;Dif Ce qui en soit est bon pour cette chaine de caractère mais en aucun cas pour la suivante. Au total je devrais avoir à répéter cette macro sur 21 chaines de caractère au maximum.