OVH Cloud OVH Cloud

"Formule trop longue" lorsque j'essaye de remplacer les caractères!!!

8 réponses
Avatar
Fred
Bonjour,

J'ai un souci concernant une cellule qui contient une chaine de caractère.
Avec une macro j'essaye de remplacer les chr10 et chr13 (Combinaison de
retours chariot et de saut de ligne) par des ";" rien ne se passe.
Je suis passé par le menu Edition et remplacer...j'ai un message d'erreur
"Formule trop longue"
Y'a t-il un moyen de pouvoir tout de même réaliser ces remplacements de
caractères???
Merci

8 réponses

Avatar
michdenis
Bonjour Fred,

Pour remplacer sur une plage de cellules :
chr10 et chr13 = constante VBCRLF

With Range("A1:G10")
.Replace vbCrLf, ""
End With


Salutations!


"Fred" a écrit dans le message de news: 43754d8c$0$16641$
Bonjour,

J'ai un souci concernant une cellule qui contient une chaine de caractère.
Avec une macro j'essaye de remplacer les chr10 et chr13 (Combinaison de
retours chariot et de saut de ligne) par des ";" rien ne se passe.
Je suis passé par le menu Edition et remplacer...j'ai un message d'erreur
"Formule trop longue"
Y'a t-il un moyen de pouvoir tout de même réaliser ces remplacements de
caractères???
Merci
Avatar
Fred
Merci Michdenis pour ta réponse...mais le souci n'est pas à ce niveau car
j'avais bien utilisé les constantes. Et plus précisément ça ne concerne pas
une plage de cellules mais une cellule uniquement qui contient une longue
chaine de caractère incluant des vbLf, vbCr.
Si je le fais par le menu -->édition--> remplacer etc... j'ai le message
suivant : "Formule trop longue"
Je ne comprends pas...car cette macro fonctionne sur d'autres cellules
(moins "chargées")!
Comment faire dès lors...à travers une macro, prendre en compte le maximum
de caractères de la chaine pour réaliser les remplacements et continuer la
suite de ma macro?

Range("H3").select
Selection.Replace What:=vbLf, Replacement:=";", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

Selection.Replace What:=vbCr, Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse





"michdenis" a écrit dans le message de news:
%
Bonjour Fred,

Pour remplacer sur une plage de cellules :
chr10 et chr13 = constante VBCRLF

With Range("A1:G10")
.Replace vbCrLf, ""
End With


Salutations!


"Fred" a écrit dans le message de news:
43754d8c$0$16641$
Bonjour,

J'ai un souci concernant une cellule qui contient une chaine de caractère.
Avec une macro j'essaye de remplacer les chr10 et chr13 (Combinaison de
retours chariot et de saut de ligne) par des ";" rien ne se passe.
Je suis passé par le menu Edition et remplacer...j'ai un message d'erreur
"Formule trop longue"
Y'a t-il un moyen de pouvoir tout de même réaliser ces remplacements de
caractères???
Merci





Avatar
Jacquouille
Bonjour Fred
Ne pourrais-tu remplacer, dans cette formule, des plages par un nom très
court, du genre zn ?
Voire, copier une partie de la formule sur plusieurs cellules, puis
reconcaténer?
Bonne chance

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Fred" a écrit dans le message de news:
4375e833$0$7336$
Merci Michdenis pour ta réponse...mais le souci n'est pas à ce niveau car
j'avais bien utilisé les constantes. Et plus précisément ça ne concerne
pas une plage de cellules mais une cellule uniquement qui contient une
longue chaine de caractère incluant des vbLf, vbCr.
Si je le fais par le menu -->édition--> remplacer etc... j'ai le message
suivant : "Formule trop longue"
Je ne comprends pas...car cette macro fonctionne sur d'autres cellules
(moins "chargées")!
Comment faire dès lors...à travers une macro, prendre en compte le maximum
de caractères de la chaine pour réaliser les remplacements et continuer la
suite de ma macro?

Range("H3").select
Selection.Replace What:=vbLf, Replacement:=";", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

Selection.Replace What:=vbCr, Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse





"michdenis" a écrit dans le message de news:
%
Bonjour Fred,

Pour remplacer sur une plage de cellules :
chr10 et chr13 = constante VBCRLF

With Range("A1:G10")
.Replace vbCrLf, ""
End With


Salutations!


"Fred" a écrit dans le message de news:
43754d8c$0$16641$
Bonjour,

J'ai un souci concernant une cellule qui contient une chaine de
caractère.
Avec une macro j'essaye de remplacer les chr10 et chr13 (Combinaison de
retours chariot et de saut de ligne) par des ";" rien ne se passe.
Je suis passé par le menu Edition et remplacer...j'ai un message d'erreur
"Formule trop longue"
Y'a t-il un moyen de pouvoir tout de même réaliser ces remplacements de
caractères???
Merci









Avatar
jps
ne t'amuse pas à suivre ce conseil du jacquouille, fred, car le nom "Zn" a
été déposé depuis éperluette par chrisV et il s'est mis de mèche avec google
et quelques lakotas amis pour traquer les pirates dans les grandes plaines
d'internet...
jps

"Jacquouille" a écrit dans le message de
news:
Bonjour Fred
Ne pourrais-tu remplacer, dans cette formule, des plages par un nom très
court, du genre zn ?


Avatar
Fred
A part ça...quelqu'un aurait une soluce à proposer...pour ce problème de
"Formule trop longue"
Merci!
"jps" a écrit dans le message de news:

ne t'amuse pas à suivre ce conseil du jacquouille, fred, car le nom "Zn" a
été déposé depuis éperluette par chrisV et il s'est mis de mèche avec
google et quelques lakotas amis pour traquer les pirates dans les grandes
plaines d'internet...
jps

"Jacquouille" a écrit dans le message de
news:
Bonjour Fred
Ne pourrais-tu remplacer, dans cette formule, des plages par un nom très
court, du genre zn ?





Avatar
michdenis
Bonjour Fred,

Essaie ceci :

Dim Mot As String
Mot = vbCrLf
Range("H3") = WorksheetFunction.Substitute(Range("H3"), Mot, "")



Salutations!




"Fred" a écrit dans le message de news: 4375e833$0$7336$
Merci Michdenis pour ta réponse...mais le souci n'est pas à ce niveau car
j'avais bien utilisé les constantes. Et plus précisément ça ne concerne pas
une plage de cellules mais une cellule uniquement qui contient une longue
chaine de caractère incluant des vbLf, vbCr.
Si je le fais par le menu -->édition--> remplacer etc... j'ai le message
suivant : "Formule trop longue"
Je ne comprends pas...car cette macro fonctionne sur d'autres cellules
(moins "chargées")!
Comment faire dès lors...à travers une macro, prendre en compte le maximum
de caractères de la chaine pour réaliser les remplacements et continuer la
suite de ma macro?

Range("H3").select
Selection.Replace What:=vbLf, Replacement:=";", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

Selection.Replace What:=vbCr, Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse





"michdenis" a écrit dans le message de news:
%
Bonjour Fred,

Pour remplacer sur une plage de cellules :
chr10 et chr13 = constante VBCRLF

With Range("A1:G10")
.Replace vbCrLf, ""
End With


Salutations!


"Fred" a écrit dans le message de news:
43754d8c$0$16641$
Bonjour,

J'ai un souci concernant une cellule qui contient une chaine de caractère.
Avec une macro j'essaye de remplacer les chr10 et chr13 (Combinaison de
retours chariot et de saut de ligne) par des ";" rien ne se passe.
Je suis passé par le menu Edition et remplacer...j'ai un message d'erreur
"Formule trop longue"
Y'a t-il un moyen de pouvoir tout de même réaliser ces remplacements de
caractères???
Merci





Avatar
Jacquouille
Bonjour Fred
Quand elle est trop longue, il faut la recouper.
As-tu lu ma suggestion précédente?

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Fred" a écrit dans le message de news:
ui$
A part ça...quelqu'un aurait une soluce à proposer...pour ce problème de
"Formule trop longue"
Merci!
"jps" a écrit dans le message de news:

ne t'amuse pas à suivre ce conseil du jacquouille, fred, car le nom "Zn"
a été déposé depuis éperluette par chrisV et il s'est mis de mèche avec
google et quelques lakotas amis pour traquer les pirates dans les grandes
plaines d'internet...
jps

"Jacquouille" a écrit dans le message de
news:
Bonjour Fred
Ne pourrais-tu remplacer, dans cette formule, des plages par un nom très
court, du genre zn ?









Avatar
Fred
Jacquouille je n'avais pas vu ta proposition...désolé
Je pense qu'il y a un sérieux problème avec le serveur de news de Free...car
il y a bcp de réponses qui passent à la trappe...je suis obligé d'utliser le
serveur de news Microsoft pour voir les réponses...sacré problème tout de
même!!!
Bravo ça marche nickel avec la proposition de Michdenis!!!
J'ai utilisé le caractère ";" qui remplace vbCrLf et j'ai pu ensuite les
mettre en colonne en utilisant une autre macro de Daniel
Dim Mot As String
Dim Tabl, Cellule As Range, Ctr As Integer, Morceau
Mot = vbCrLf
Range("H3") = WorksheetFunction.Substitute(Range("H3"), Mot, ";")
Tabl = Split([H3], ";")
Set Cellule = Range("H3")
For Each Morceau In Tabl
Cellule.Offset(Ctr, 0) = Morceau
Ctr = Ctr + 1
Next Morceau
Merci à vous tous!!!


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

Bonjour Fred,

Essaie ceci :

Dim Mot As String
Mot = vbCrLf
Range("H3") = WorksheetFunction.Substitute(Range("H3"), Mot, "")



Salutations!




"Fred" a écrit dans le message de news:
4375e833$0$7336$
Merci Michdenis pour ta réponse...mais le souci n'est pas à ce niveau car
j'avais bien utilisé les constantes. Et plus précisément ça ne concerne
pas
une plage de cellules mais une cellule uniquement qui contient une longue
chaine de caractère incluant des vbLf, vbCr.
Si je le fais par le menu -->édition--> remplacer etc... j'ai le message
suivant : "Formule trop longue"
Je ne comprends pas...car cette macro fonctionne sur d'autres cellules
(moins "chargées")!
Comment faire dès lors...à travers une macro, prendre en compte le maximum
de caractères de la chaine pour réaliser les remplacements et continuer la
suite de ma macro?

Range("H3").select
Selection.Replace What:=vbLf, Replacement:=";", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

Selection.Replace What:=vbCr, Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse





"michdenis" a écrit dans le message de news:
%
Bonjour Fred,

Pour remplacer sur une plage de cellules :
chr10 et chr13 = constante VBCRLF

With Range("A1:G10")
.Replace vbCrLf, ""
End With


Salutations!


"Fred" a écrit dans le message de news:
43754d8c$0$16641$
Bonjour,

J'ai un souci concernant une cellule qui contient une chaine de
caractère.
Avec une macro j'essaye de remplacer les chr10 et chr13 (Combinaison de
retours chariot et de saut de ligne) par des ";" rien ne se passe.
Je suis passé par le menu Edition et remplacer...j'ai un message d'erreur
"Formule trop longue"
Y'a t-il un moyen de pouvoir tout de même réaliser ces remplacements de
caractères???
Merci