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

Edition Remplacer fonctionne lors de l'enregistrement de la macro

17 réponses
Avatar
PLG
Bonjour à tous
Cela fait longtemps que cela me court...
J'ai des données exportées d'une application, elles sont en format texte et
avec un point comme séparateur au lieu d'une virgule.
Je fais donc un Edition / Remplacer les points par les virgules en macro.
Lorsque je crée ma macro via l'enregistreur cela fonctionne très bien, les
données passent en mode numérique et le séparateur est bien la virgule.
Hors si je lance cette macro par la suite, le point est bien remplacé par la
virgule, mais les valeurs restent en format texte et sont donc inexploitables
en l'état.
C'est frustrant...!!!!
Voici mon bête code :
Sub Macro2()
Range("P23:S35").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
End Sub

Le problème a déjà dû être soulevé....
Merci à vous si vous arrivez à me dépanner.
Bonne journée
Pat

10 réponses

1 2
Avatar
isabelle
bonjour Pat,

ajoute ces deux lignes à la fin de ta macro, ps/
Range("IV65536") doit être vide

Range("IV65536").Copy
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd

isabelle

Le 2010-06-04 06:46, PLG a écrit :
Bonjour à tous
Cela fait longtemps que cela me court...
J'ai des données exportées d'une application, elles sont en format texte et
avec un point comme séparateur au lieu d'une virgule.
Je fais donc un Edition / Remplacer les points par les virgules en macro.
Lorsque je crée ma macro via l'enregistreur cela fonctionne très bien, les
données passent en mode numérique et le séparateur est bien la virgule.
Hors si je lance cette macro par la suite, le point est bien remplacé par la
virgule, mais les valeurs restent en format texte et sont donc inexploitables
en l'état.
C'est frustrant...!!!!
Voici mon bête code :
Sub Macro2()
Range("P23:S35").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
End Sub

Le problème a déjà dû être soulevé....
Merci à vous si vous arrivez à me dépanner.
Bonne journée
Pat

Avatar
FFO
Salut à toi

As tu essayé sur chaque colonne données/convertir

Celà devrait faire

Dis moi !!!!!
Avatar
michdenis
Bonjour,

Une façon de faire...
(pour me faire plaisir...!)

Adapte le nom de la feuille et de la plage
'---------------------------------
Sub test()
Dim C As Range
Application.ScreenUpdating = False
With Worksheets("Feuil1")
.Activate
With .Range("A1:A10")
.Replace ".", ",", xlPart
For Each C In .Cells
C.Select
SendKeys "{F2}" & "~"
t = Timer + 1 / 10000
Do While Timer <= t
DoEvents
Loop
Next
End With
End With
Application.ScreenUpdating = True
End Sub
'---------------------------------




"PLG" a écrit dans le message de groupe de discussion :

Bonjour à tous
Cela fait longtemps que cela me court...
J'ai des données exportées d'une application, elles sont en format texte et
avec un point comme séparateur au lieu d'une virgule.
Je fais donc un Edition / Remplacer les points par les virgules en macro.
Lorsque je crée ma macro via l'enregistreur cela fonctionne très bien, les
données passent en mode numérique et le séparateur est bien la virgule.
Hors si je lance cette macro par la suite, le point est bien remplacé par la
virgule, mais les valeurs restent en format texte et sont donc inexploitables
en l'état.
C'est frustrant...!!!!
Voici mon bête code :
Sub Macro2()
Range("P23:S35").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
End Sub

Le problème a déjà dû être soulevé....
Merci à vous si vous arrivez à me dépanner.
Bonne journée
Pat
Avatar
michdenis
Par macro,

Cela donne ceci:
Trop facile de cette manièree !
;-)
'-------------------------------
Sub test2()
Application.ScreenUpdating = False
With Worksheets("Feuil")
With .Range("A1:A10")
.TextToColumns Destination:=Range("A1"), _
DataType:=xlDelimited, DecimalSeparator:="."
End With
End With
Application.ScreenUpdating = True
End Sub
'-------------------------------



"FFO" a écrit dans le message de groupe de discussion :

Salut à toi

As tu essayé sur chaque colonne données/convertir

Celà devrait faire

Dis moi !!!!!
Avatar
FFO
Salut michdenis

que veux tu dire par :

"Trop facile de cette manièree !"

Ais je dis une bétise ?????

Merci de lever le doute
Avatar
michdenis
Bonjour Isabelle,

La bonne vieille méthode ne fonctionne plus sous Excel 2007
qui consiste à copier 1 dans la cellule et d'utiliser la méthode
"Coller" valeur seulement et opération : multiplication
par macro.
Quelqu'un a une explication ?
'---------------------
Sub test1()
Application.ScreenUpdating = False
With Worksheets("Sheet1")
.Range("A1:A10").Replace ".", ",", xlPart
.Range("G1") = 1
.Range("G1").Copy
With .Range("A1:A10")
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
.Range("G1") = ""
End With
Application.ScreenUpdating = True
End Sub
'--------------------------------------



"isabelle" a écrit dans le message de groupe de discussion :
#
bonjour Pat,

ajoute ces deux lignes à la fin de ta macro, ps/
Range("IV65536") doit être vide

Range("IV65536").Copy
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd

isabelle

Le 2010-06-04 06:46, PLG a écrit :
Bonjour à tous
Cela fait longtemps que cela me court...
J'ai des données exportées d'une application, elles sont en format texte et
avec un point comme séparateur au lieu d'une virgule.
Je fais donc un Edition / Remplacer les points par les virgules en macro.
Lorsque je crée ma macro via l'enregistreur cela fonctionne très bien, les
données passent en mode numérique et le séparateur est bien la virgule.
Hors si je lance cette macro par la suite, le point est bien remplacé par la
virgule, mais les valeurs restent en format texte et sont donc inexploitables
en l'état.
C'est frustrant...!!!!
Voici mon bête code :
Sub Macro2()
Range("P23:S35").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
End Sub

Le problème a déjà dû être soulevé....
Merci à vous si vous arrivez à me dépanner.
Bonne journée
Pat

Avatar
michdenis
Il faut interpréter cela au sens littéraire sans plus.
Tu n'a pas écrit une bêtise...rassure-toi!

Tiens, une autre façon de faire :

'-----------------------------
Sub test()
Dim C As Range
Application.ScreenUpdating = False
With Worksheets("Feuil1")
For Each C In .Range("A1:A10")
C.Value = Replace(C, ".", ",") * 1
Next
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------


"FFO" a écrit dans le message de groupe de discussion :

Salut michdenis

que veux tu dire par :

"Trop facile de cette manièree !"

Ais je dis une bétise ?????

Merci de lever le doute
Avatar
isabelle
et l'addition d'une cellule vide non plus ?
isabelle

Le 2010-06-04 08:21, michdenis a écrit :
Bonjour Isabelle,

La bonne vieille méthode ne fonctionne plus sous Excel 2007
qui consiste à copier 1 dans la cellule et d'utiliser la méthode
"Coller" valeur seulement et opération : multiplication
par macro.
Quelqu'un a une explication ?
'---------------------
Sub test1()
Application.ScreenUpdating = False
With Worksheets("Sheet1")
.Range("A1:A10").Replace ".", ",", xlPart
.Range("G1") = 1
.Range("G1").Copy
With .Range("A1:A10")
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
.Range("G1") = ""
End With
Application.ScreenUpdating = True
End Sub
'--------------------------------------



"isabelle" a écrit dans le message de groupe de discussion :
#
bonjour Pat,

ajoute ces deux lignes à la fin de ta macro, ps/
Range("IV65536") doit être vide

Range("IV65536").Copy
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd

isabelle

Le 2010-06-04 06:46, PLG a écrit :

Bonjour à tous
Cela fait longtemps que cela me court...
J'ai des données exportées d'une application, elles sont en format texte et
avec un point comme séparateur au lieu d'une virgule.
Je fais donc un Edition / Remplacer les points par les virgules en macro.
Lorsque je crée ma macro via l'enregistreur cela fonctionne très bien, les
données passent en mode numérique et le séparateur est bien la virgule.
Hors si je lance cette macro par la suite, le point est bien remplacé par la
virgule, mais les valeurs restent en format texte et sont donc inexploitables
en l'état.
C'est frustrant...!!!!
Voici mon bête code :
Sub Macro2()
Range("P23:S35").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
End Sub

Le problème a déjà dû être soulevé....
Merci à vous si vous arrivez à me dépanner.
Bonne journée
Pat


Avatar
michdenis
Eh oui, même avec l'addition !
D'ailleurs, je t'ai mis la procédure que j'ai utilisée pour tester.



"isabelle" a écrit dans le message de groupe de discussion :
#OefxI#
et l'addition d'une cellule vide non plus ?
isabelle

Le 2010-06-04 08:21, michdenis a écrit :
Bonjour Isabelle,

La bonne vieille méthode ne fonctionne plus sous Excel 2007
qui consiste à copier 1 dans la cellule et d'utiliser la méthode
"Coller" valeur seulement et opération : multiplication
par macro.
Quelqu'un a une explication ?
'---------------------
Sub test1()
Application.ScreenUpdating = False
With Worksheets("Sheet1")
.Range("A1:A10").Replace ".", ",", xlPart
.Range("G1") = 1
.Range("G1").Copy
With .Range("A1:A10")
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
.Range("G1") = ""
End With
Application.ScreenUpdating = True
End Sub
'--------------------------------------



"isabelle" a écrit dans le message de groupe de discussion :
#
bonjour Pat,

ajoute ces deux lignes à la fin de ta macro, ps/
Range("IV65536") doit être vide

Range("IV65536").Copy
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd

isabelle

Le 2010-06-04 06:46, PLG a écrit :

Bonjour à tous
Cela fait longtemps que cela me court...
J'ai des données exportées d'une application, elles sont en format texte et
avec un point comme séparateur au lieu d'une virgule.
Je fais donc un Edition / Remplacer les points par les virgules en macro.
Lorsque je crée ma macro via l'enregistreur cela fonctionne très bien, les
données passent en mode numérique et le séparateur est bien la virgule.
Hors si je lance cette macro par la suite, le point est bien remplacé par la
virgule, mais les valeurs restent en format texte et sont donc inexploitables
en l'état.
C'est frustrant...!!!!
Voici mon bête code :
Sub Macro2()
Range("P23:S35").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
End Sub

Le problème a déjà dû être soulevé....
Merci à vous si vous arrivez à me dépanner.
Bonne journée
Pat


Avatar
isabelle
et bien plus ça change moins c'est compatible :-(
autre soluce, mettre les données cdbl(x) dans un tableau, effacer
completement la plage pour éliminé le formatage texte, et transposé le
tableau.
isabelle

Le 2010-06-04 08:56, michdenis a écrit :
Eh oui, même avec l'addition !
D'ailleurs, je t'ai mis la procédure que j'ai utilisée pour tester.



"isabelle" a écrit dans le message de groupe de discussion :
#OefxI#
et l'addition d'une cellule vide non plus ?
isabelle

Le 2010-06-04 08:21, michdenis a écrit :

Bonjour Isabelle,

La bonne vieille méthode ne fonctionne plus sous Excel 2007
qui consiste à copier 1 dans la cellule et d'utiliser la méthode
"Coller" valeur seulement et opération : multiplication
par macro.
Quelqu'un a une explication ?
'---------------------
Sub test1()
Application.ScreenUpdating = False
With Worksheets("Sheet1")
.Range("A1:A10").Replace ".", ",", xlPart
.Range("G1") = 1
.Range("G1").Copy
With .Range("A1:A10")
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
End With
.Range("G1") = ""
End With
Application.ScreenUpdating = True
End Sub
'--------------------------------------



"isabelle" a écrit dans le message de groupe de discussion :
#
bonjour Pat,

ajoute ces deux lignes à la fin de ta macro, ps/
Range("IV65536") doit être vide

Range("IV65536").Copy
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd

isabelle

Le 2010-06-04 06:46, PLG a écrit :


Bonjour à tous
Cela fait longtemps que cela me court...
J'ai des données exportées d'une application, elles sont en format texte et
avec un point comme séparateur au lieu d'une virgule.
Je fais donc un Edition / Remplacer les points par les virgules en macro.
Lorsque je crée ma macro via l'enregistreur cela fonctionne très bien, les
données passent en mode numérique et le séparateur est bien la virgule.
Hors si je lance cette macro par la suite, le point est bien remplacé par la
virgule, mais les valeurs restent en format texte et sont donc inexploitables
en l'état.
C'est frustrant...!!!!
Voici mon bête code :
Sub Macro2()
Range("P23:S35").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
End Sub

Le problème a déjà dû être soulevé....
Merci à vous si vous arrivez à me dépanner.
Bonne journée
Pat



1 2