Edition Remplacer fonctionne lors de l'enregistrement de la macro

Le
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:úlse
End Sub

Le problème a déjà dû être soulevé.
Merci à vous si vous arrivez à me dépanner.
Bonne journée
Pat
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #22210521
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

FFO
Le #22210511
Salut à toi

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

Celà devrait faire

Dis moi !!!!!
michdenis
Le #22210741
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"
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
michdenis
Le #22210731
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"
Salut à toi

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

Celà devrait faire

Dis moi !!!!!
FFO
Le #22210971
Salut michdenis

que veux tu dire par :

"Trop facile de cette manièree !"

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

Merci de lever le doute
michdenis
Le #22210961
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

michdenis
Le #22210951
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"
Salut michdenis

que veux tu dire par :

"Trop facile de cette manièree !"

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

Merci de lever le doute
isabelle
Le #22211081
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


michdenis
Le #22211221
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


isabelle
Le #22211211
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



Publicité
Poster une réponse
Anonyme