Fonction Replace dans Excel

guileouf Messages postés 6 Date d'inscription vendredi 5 août 2005 Statut Membre Dernière intervention 2 février 2006 - 5 août 2005 à 19:14
guileouf Messages postés 6 Date d'inscription vendredi 5 août 2005 Statut Membre Dernière intervention 2 février 2006 - 10 août 2005 à 20:05
Bonjour.



Je cole dans excels du texte du type "50,00 EUR" dans des cellule au
format nombre classique avec 2 décimales. A la main, en faisant la
fonction remplacer, je supprime les EUR présents dans les cellules, il
ne reste alors bien qu'un nombre considéré comme tel par Excel.



Par macro, ça supprime les EUR mais ça reste du texte :



Cells.Replace What:="EUR", Replacement:="", LookAt:=xlPart, SearchOrder _

:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False



Seul un F2 puis Entrée fait comme un rafraîchissement et à partir de
là, Excel considère un nombre (alignement à droite et sommes possibles).



Comment faire par macro ce rafraîchissement qui manque ?

5 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 août 2005 à 19:30
salut,
désolé, VBA...... je touche pas.
par contre, apparemment, tu ne supprimes pas l'espace entre les centimes et la devise....

ou aussi peut-être :
Cells.Replace Val(..) je connais pas la syntaxe
en VB, çà pourrait ressembler à :

MaVal = Val(Remplace(MaCell, " EUR", ""))

PCPT
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
5 août 2005 à 20:02
Salut

pcpt a raison, met un space avant EUR et c'est bon.
Cette syntaxe, par ex, fonctionne parfaitement chez moi :

Cells.Replace What:=" EUR", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
guileouf Messages postés 6 Date d'inscription vendredi 5 août 2005 Statut Membre Dernière intervention 2 février 2006
6 août 2005 à 20:10
Effectivement j'avais des espaces à
supprimer. Mais ça ne suffit pas : à la fin seuls les chiffrent restent
mais Excel les considère par comme un nombre. Une somme sur les
cellules en sélectionnant qqunes d'entre elles ne donne rien.



Si, à la main, je fais F2 puis Entrée, ça aligne à droite, et les sommes en sélectionnant les cellules marchent....




La syntaxe est la suivante :

Columns("C:E").Select

Selection.Replace What:=" FRF", Replacement:="", LookAt:=xlPart, SearchOrder _

:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=True

Application.ReplaceFormat.Clear

Selection.Replace What:="EUR", Replacement:="", LookAt:=xlPart, SearchOrder _

:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder _

:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False



Via le menu remplacer, après la manip, on a bien des nombres, alignés à droite, sur lesquels on peut faire des sommes....
0
jhary69 Messages postés 81 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 22 juillet 2007
7 août 2005 à 11:29
salut,

regarde à la main le type de données de tes cellules apres le replace : si c'est texte, c'est normal que ca marche pô dans ce cas la faut faire apres le replace un changement du format des cellules ( Selection.NumberFormat = "0.00" ou autre).

Sinon j'ai deja eu un pb du genre sur Excel et j'avais resolu le pb en faisant un

For Each cel In Selection.Cells
cel.Formula = cel.Formula
Next

ca fait en auto le F2 sur chaque cellule de la selection ...

A+

christophe.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guileouf Messages postés 6 Date d'inscription vendredi 5 août 2005 Statut Membre Dernière intervention 2 février 2006
10 août 2005 à 20:05
Merci de votre aide. J'ai rajouté les lignes suivantes qui corrige mon problème :


Columns("C:C").Select


Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _


TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _


Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _


:=Array(1, 1), TrailingMinusNumbers:=True


Columns("D:D").Select


Selection.TextToColumns Destination:=Range("D1"), DataType:=xlDelimited, _


TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _


Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _


:=Array(1, 1), TrailingMinusNumbers:=True




A+
0
Rejoignez-nous