Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Remplacement auto

42 réponses
Avatar
f4crw
Bonjour ou Bonsoir,

Quelqu'un peut-il m=E2=80=99expliquer pourquoi cette macro fonctionne bien =
en pas =C3=A0 pas et me laisse certains points en automatique et quoi chang=
er.

Merci

R=C3=A9gis

Sub Macro2()
'
'Remplacer les points par des virgules
Columns("D:F").Select
Selection.Replace What:=3D".", Replacement:=3D",", LookAt:=3DxlPart, _
SearchOrder:=3DxlByRows, MatchCase:=3DFalse, SearchFormat:=3DFalse,=
_
ReplaceFormat:=3DFalse
End Sub

10 réponses

1 2 3 4 5
Avatar
News.aioe.org
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
Avatar
News.aioe.org
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
Avatar
f4crw
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
Avatar
f4crw
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
Avatar
News.aioe.org
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
Avatar
f4crw
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
Avatar
MichD
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
Avatar
f4crw
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
Avatar
News.aioe.org
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
Avatar
f4crw
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
1 2 3 4 5