Remplacement auto

Le
f4crw
Bonjour ou Bonsoir,

Quelqu'un peut-il m’expliquer pourquoi cette macro fonctionne bien =
en pas à pas et me laisse certains points en automatique et quoi chang=
er.

Merci

Régis

Sub Macro2()
'
'Remplacer les points par des virgules
Columns("D:F").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False,=
_
ReplaceFormat:=False
End Sub
Vos réponses Page 1 / 5
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
News.aioe.org
Le #26420678
Bonjour,
Peux-tu donner quelques exemples de "points" que la macro ne remplace pas?
Que contiennent ces cellules?
MichD

Sub Macro2()
'
'Remplacer les points par des virgules
Columns("D:F").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
End Sub
News.aioe.org
Le #26420679
Bonjour,
Peux-tu donner quelques exemples de "points" que la macro ne remplace pas?
Que contiennent ces cellules?
Cette macro remplacera seulement les points dans les cellules contenant du
texte.
Les cellules affichant du numérique ne seront pas touchées. La raison est
simple.
En VBA, on doit écrire un chiffre comme ceci : 123.23 avec un point comme
séparateur décimal. Dans la feuille de calcul, le chiffre devient 123,23
parce qu'Excel
tient compte des options régionales définies dans le panneau de
configuration de Windows.
Comme en français, le réparateur décimal par défaut (à moins de le modifier)
est la virgule,
le point du chiffre en VBA se transformera en virgule dans la feuille de
calcul.
'---------------------------------------------------------------
Sub test()
With Columns("D:F")
'remplace les virgules des nombres par des points.
'Les chiffres dans les cellules seront considérés comme du texte
'Faut faire cette opération en premier (si besoin)
.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
'Remplace tous les points par des virgules.
'Les chiffres des cellules auront des virgules, mais continueront de
s'afficher
'à gauche. Il faudra cliquer dans chacune des cellules pour que ces
dernières
's'affichent à droite...
.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
End With
End Sub
'---------------------------------------------------------------
MichD
f4crw
Le #26420751
Le vendredi 16 décembre 2016 03:28:27 UTC+1, News.aioe.org a écri t :
Bonjour,
Peux-tu donner quelques exemples de "points" que la macro ne remplace pas ?
Que contiennent ces cellules?
MichD

Sub Macro2()
'
'Remplacer les points par des virgules
Columns("D:F").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:lse, SearchFormat:ls e, _
ReplaceFormat:lse
End Sub

Bonjour MichD,
Toutes ces cellules contienne du texte importer d'un fichier TXT contenant entre 2000 et 15000 lignes en général
Je répète que je dois remplacer les points par des virgules
la macro fonctionne bien en pas à pas
là où je ne comprends pas, c'est qu'elle me laisse certains point s une fois lancer et de manière aléatoire.
Dommage, car la méthode par remplacement est très rapide sur un g rand nombre de lignes et de colonnes.
Bonne journée et merci.
Régis
f4crw
Le #26420757
Le vendredi 16 décembre 2016 04:13:20 UTC+1, News.aioe.org a écri t :
Bonjour,
Peux-tu donner quelques exemples de "points" que la macro ne remplace pas ?
Que contiennent ces cellules?
Cette macro remplacera seulement les points dans les cellules contenant d u
texte.
Les cellules affichant du numérique ne seront pas touchées. La raison est
simple.
En VBA, on doit écrire un chiffre comme ceci : 123.23 avec un point comme
séparateur décimal. Dans la feuille de calcul, le chiffre devie nt 123,23
parce qu'Excel
tient compte des options régionales définies dans le panneau de
configuration de Windows.
Comme en français, le réparateur décimal par défaut ( à moins de le modifier)
est la virgule,
le point du chiffre en VBA se transformera en virgule dans la feuille de
calcul.
'---------------------------------------------------------------
Sub test()
With Columns("D:F")
'remplace les virgules des nombres par des points.
'Les chiffres dans les cellules seront considérés comme du texte
'Faut faire cette opération en premier (si besoin)
.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:lse, SearchFormat:ls e, _
ReplaceFormat:lse
'Remplace tous les points par des virgules.
'Les chiffres des cellules auront des virgules, mais continueront de
s'afficher
'à gauche. Il faudra cliquer dans chacune des cellules pour que ces
dernières
's'affichent à droite...
.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:lse, SearchFormat:ls e, _
ReplaceFormat:lse
End With
End Sub
'---------------------------------------------------------------
MichD

Rebonjour,
Il n'y a pas de virgules dans mon fichier txt d'origine.
Régis
News.aioe.org
Le #26420770
Est-ce que tu as d'autres macros dans ce fichier initié par
des événements?
Utilise le site Cjoint.com et publie une petite partie de ton fichier où
certains points sont oubliés par la macro. Tu nous transmets ici
l'adresse que tu auras obtenue.
Sans rien voir, c'est difficile de te suggérer autre chose que j'ai
déjà mentionné.
MichD
f4crw
Le #26420892
Le vendredi 16 décembre 2016 18:24:08 UTC+1, News.aioe.org a écri t :
Est-ce que tu as d'autres macros dans ce fichier initié par
des événements?
Utilise le site Cjoint.com et publie une petite partie de ton fichier o ù
certains points sont oubliés par la macro. Tu nous transmets ici
l'adresse que tu auras obtenue.
Sans rien voir, c'est difficile de te suggérer autre chose que j'ai
déjà mentionné.
MichD

Bonjour MichD,
avec =SUBSTITUE(A1;".";";") ça marche, mais c'est toujours du texte mêm après un copier collage spécial valeurs et je dois conv ertir en nombre pour que la macro suivante retrouve les valeurs que je rech erche.
Merci
MichD
Le #26420893
Je me répète,
Utilise le site Cjoint.com et publie une petite partie de ton fichier où
certains points sont oubliés par la macro. Tu nous transmets ici
l'adresse que tu auras obtenue. N'oublie pas d'indiquer dans le
classeur ce que tu veux obtenir comme résultat.
Sans rien voir, je ne peux pas t'aider davantage!
MichD
f4crw
Le #26420915
Le dimanche 18 décembre 2016 03:44:08 UTC+1, MichD a écrit :
Je me répète,
Utilise le site Cjoint.com et publie une petite partie de ton fichier o ù
certains points sont oubliés par la macro. Tu nous transmets ici
l'adresse que tu auras obtenue. N'oublie pas d'indiquer dans le
classeur ce que tu veux obtenir comme résultat.
Sans rien voir, je ne peux pas t'aider davantage!
MichD

Bonjour MichD,
J'ai déposé un exemple de mon fichier comme tu la demander.
Merci encore pour ton aide.
Cordialement
Régis
http://www.cjoint.com/c/FLsndErduiC
News.aioe.org
Le #26420916
Bonjour,
Essaie ceci :
'-----------------------------------------------------------------------------
Sub test()
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
With Worksheets("Feuil1") 'Nom feuille à adapter au besoin
With .Range("D2:F34")
.Replace Chr(160), "", xlPart
.NumberFormat = "# ### ###.00"
.Replace what:=".", Replacement:=",", LookAt:=xlPart
.Replace what:=",", Replacement:=".", LookAt:=xlPart
End With
End With
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
'-----------------------------------------------------------------------------
MichD
f4crw
Le #26420918
Le dimanche 18 décembre 2016 14:50:15 UTC+1, News.aioe.org a écri t :
Bonjour,
Essaie ceci :
'------------------------------------------------------------------------ -----
Sub test()
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
With Worksheets("Feuil1") 'Nom feuille à adapter au besoin
With .Range("D2:F34")
.Replace Chr(160), "", xlPart
.NumberFormat = "# ### ###.00"
.Replace what:=".", Replacement:=",", LookAt:=xlPart
.Replace what:=",", Replacement:=".", LookAt:=xlPart
End With
End With
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
'------------------------------------------------------------------------ -----
MichD

Non
Sub test()
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
With Worksheets("Feuil1") 'Nom feuille à adapter au besoin
With .Range("D2:F34")
.Replace Chr(160), "", xlPart
.NumberFormat = "# ### ###.00"
.Replace what:=".", Replacement:=",", LookAt:=xlPart
.Replace what:=",", Replacement:=".", LookAt:=xlPart
End With
End With
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
ça ne marche pas , alors qu'en manuel avec ctrl + h rechercher . et remplacer par , là tout fonctionne très bien c'est étonnant.
Merci qm
Publicité
Poster une réponse
Anonyme