Bonjour à tous,
Je suis sur Excel 97 avec des décimales séparées par une
virgule. (ex : 1235,05)
J'ai une macro, ci dessous, qui fonctionne très bien pour
changer un caractère. Je m'explique :
J' importe un fichier avec des nombres sous la forme :
1.236,56
1.236.256,56
236,26
Lorsque je lance ma macro, qui doit remplacer le "."
par "", j'obtiens :
1236,56 =>OK
1236256,56 =>ok
23626 => KO. 236,23 est la bonne réponse ! Mais pour
excel, non !
Merci pour vos lumières.
Cordialement,
François
Macro :
Sub Mise_Forme()
'
Dim Char, Rg As Range
Char = Array(".")
'Utilisation d'une variable Rg pour contenir
'toute la plage affectée par le remplacement.
Set Rg = Worksheets("Import").Range("F:F")
Rows("1:36").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll ToRight:=1
Columns("M:M").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.SmallScroll ToRight:=-1
For Each C In Char
Rg.Replace What:=C, Replacement:=""
Next
Range("A1").Select
End Sub
Bonjour à tous,
Je suis sur Excel 97 avec des décimales séparées par une
virgule. (ex : 1235,05)
J'ai une macro, ci dessous, qui fonctionne très bien pour
changer un caractère. Je m'explique :
J' importe un fichier avec des nombres sous la forme :
1.236,56
1.236.256,56
236,26
Lorsque je lance ma macro, qui doit remplacer le "."
par "", j'obtiens :
1236,56 =>OK
1236256,56 =>ok
23626 => KO. 236,23 est la bonne réponse ! Mais pour
excel, non !
Merci pour vos lumières.
Cordialement,
François
Macro :
Sub Mise_Forme()
'
Dim Char, Rg As Range
Char = Array(".")
'Utilisation d'une variable Rg pour contenir
'toute la plage affectée par le remplacement.
Set Rg = Worksheets("Import").Range("F:F")
Rows("1:36").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll ToRight:=1
Columns("M:M").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.SmallScroll ToRight:=-1
For Each C In Char
Rg.Replace What:=C, Replacement:=""
Next
Range("A1").Select
End Sub
Bonjour à tous,
Je suis sur Excel 97 avec des décimales séparées par une
virgule. (ex : 1235,05)
J'ai une macro, ci dessous, qui fonctionne très bien pour
changer un caractère. Je m'explique :
J' importe un fichier avec des nombres sous la forme :
1.236,56
1.236.256,56
236,26
Lorsque je lance ma macro, qui doit remplacer le "."
par "", j'obtiens :
1236,56 =>OK
1236256,56 =>ok
23626 => KO. 236,23 est la bonne réponse ! Mais pour
excel, non !
Merci pour vos lumières.
Cordialement,
François
Macro :
Sub Mise_Forme()
'
Dim Char, Rg As Range
Char = Array(".")
'Utilisation d'une variable Rg pour contenir
'toute la plage affectée par le remplacement.
Set Rg = Worksheets("Import").Range("F:F")
Rows("1:36").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll ToRight:=1
Columns("M:M").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.SmallScroll ToRight:=-1
For Each C In Char
Rg.Replace What:=C, Replacement:=""
Next
Range("A1").Select
End Sub
-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points les
virgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car en
VBA, les
nombres sont au format anglais, donc avec un point comme
séparateur de
décimales. En affectant cette valeur numérique (avec un
point) à une
cellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
François wrote:Bonjour à tous,
Je suis sur Excel 97 avec des décimales séparées par
une
virgule. (ex : 1235,05)
J'ai une macro, ci dessous, qui fonctionne très bien
pour
changer un caractère. Je m'explique :
J' importe un fichier avec des nombres sous la forme :
1.236,56
1.236.256,56
236,26
Lorsque je lance ma macro, qui doit remplacer le "."
par "", j'obtiens :
1236,56 =>OK
1236256,56 =>ok
23626 => KO. 236,23 est la bonne réponse ! Mais pour
excel, non !
Merci pour vos lumières.
Cordialement,
François
Macro :
Sub Mise_Forme()
'
Dim Char, Rg As Range
Char = Array(".")
'Utilisation d'une variable Rg pour contenir
'toute la plage affectée par le remplacement.
Set Rg = Worksheets("Import").Range("F:F")
Rows("1:36").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll ToRight:=1
Columns("M:M").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.SmallScroll ToRight:=-1
For Each C In Char
Rg.Replace What:=C, Replacement:=""
Next
Range("A1").Select
End Sub
.
-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points les
virgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car en
VBA, les
nombres sont au format anglais, donc avec un point comme
séparateur de
décimales. En affectant cette valeur numérique (avec un
point) à une
cellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
François wrote:
Bonjour à tous,
Je suis sur Excel 97 avec des décimales séparées par
une
virgule. (ex : 1235,05)
J'ai une macro, ci dessous, qui fonctionne très bien
pour
changer un caractère. Je m'explique :
J' importe un fichier avec des nombres sous la forme :
1.236,56
1.236.256,56
236,26
Lorsque je lance ma macro, qui doit remplacer le "."
par "", j'obtiens :
1236,56 =>OK
1236256,56 =>ok
23626 => KO. 236,23 est la bonne réponse ! Mais pour
excel, non !
Merci pour vos lumières.
Cordialement,
François
Macro :
Sub Mise_Forme()
'
Dim Char, Rg As Range
Char = Array(".")
'Utilisation d'une variable Rg pour contenir
'toute la plage affectée par le remplacement.
Set Rg = Worksheets("Import").Range("F:F")
Rows("1:36").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll ToRight:=1
Columns("M:M").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.SmallScroll ToRight:=-1
For Each C In Char
Rg.Replace What:=C, Replacement:=""
Next
Range("A1").Select
End Sub
.
-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points les
virgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car en
VBA, les
nombres sont au format anglais, donc avec un point comme
séparateur de
décimales. En affectant cette valeur numérique (avec un
point) à une
cellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
François wrote:Bonjour à tous,
Je suis sur Excel 97 avec des décimales séparées par
une
virgule. (ex : 1235,05)
J'ai une macro, ci dessous, qui fonctionne très bien
pour
changer un caractère. Je m'explique :
J' importe un fichier avec des nombres sous la forme :
1.236,56
1.236.256,56
236,26
Lorsque je lance ma macro, qui doit remplacer le "."
par "", j'obtiens :
1236,56 =>OK
1236256,56 =>ok
23626 => KO. 236,23 est la bonne réponse ! Mais pour
excel, non !
Merci pour vos lumières.
Cordialement,
François
Macro :
Sub Mise_Forme()
'
Dim Char, Rg As Range
Char = Array(".")
'Utilisation d'une variable Rg pour contenir
'toute la plage affectée par le remplacement.
Set Rg = Worksheets("Import").Range("F:F")
Rows("1:36").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll ToRight:=1
Columns("M:M").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.SmallScroll ToRight:=-1
For Each C In Char
Rg.Replace What:=C, Replacement:=""
Next
Range("A1").Select
End Sub
.
Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car en
VBA, lesnombres sont au format anglais, donc avec un point comme
séparateur dedécimales. En affectant cette valeur numérique (avec un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???
-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points les
virgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car en
VBA, les
nombres sont au format anglais, donc avec un point comme
séparateur de
décimales. En affectant cette valeur numérique (avec un
point) à une
cellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car en
VBA, lesnombres sont au format anglais, donc avec un point comme
séparateur dedécimales. En affectant cette valeur numérique (avec un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuter
la macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
en
VBA, lesnombres sont au format anglais, donc avec un point
comme
séparateur dedécimales. En affectant cette valeur numérique (avec un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuter
la macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:
Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???
-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points les
virgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
en
VBA, les
nombres sont au format anglais, donc avec un point
comme
séparateur de
décimales. En affectant cette valeur numérique (avec un
point) à une
cellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuter
la macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
en
VBA, lesnombres sont au format anglais, donc avec un point
comme
séparateur dedécimales. En affectant cette valeur numérique (avec un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu me
consacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu me
consacres
François
-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuter
la macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:
Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???
-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points les
virgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
en
VBA, les
nombres sont au format anglais, donc avec un point
comme
séparateur de
décimales. En affectant cette valeur numérique (avec un
point) à une
cellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu me
consacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
me
consacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec
un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:
Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
me
consacres
François
-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuter
la macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:
Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???
-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points les
virgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
en
VBA, les
nombres sont au format anglais, donc avec un point
comme
séparateur de
décimales. En affectant cette valeur numérique (avec
un
point) à une
cellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
me
consacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec
un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
Pour Excel, le séparateur décimal est le point.
On peut choisir de modifier le format d'affichage en affichant une virgule
à
la place du point. Mais si on utilise la fonction Replace pour remplacer
le
point, on verra la virgule utilisée comme séparateur décimal, remplacée
comme si c'était un point.
Sous toutes réserves.
"docm" wrote in message
news:Bonjour François.
Le problème semble être dû au format de la cellule.
Ceci fonctionne:
Rg.NumberFormat = "@" 'Format texte
Rg.Replace What:="", Replacement:=""
Rg.NumberFormat = "General"
Amicalement.
"François" wrote in message
news:3b3201c48f99$ac020bc0$
Salut FxM
Cela ne marche pas non plus... Je vais essayer de trouver
une solution de contournement. Ceci dit, je reste à
l'écoute...
Merci encore,
François-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
meconsacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec
un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
Pour Excel, le séparateur décimal est le point.
On peut choisir de modifier le format d'affichage en affichant une virgule
à
la place du point. Mais si on utilise la fonction Replace pour remplacer
le
point, on verra la virgule utilisée comme séparateur décimal, remplacée
comme si c'était un point.
Sous toutes réserves.
"docm" <docmarti@spamcolba.net> wrote in message
news:OzS2GB8jEHA.536@TK2MSFTNGP11.phx.gbl...
Bonjour François.
Le problème semble être dû au format de la cellule.
Ceci fonctionne:
Rg.NumberFormat = "@" 'Format texte
Rg.Replace What:="", Replacement:=""
Rg.NumberFormat = "General"
Amicalement.
"François" <anonymous@discussions.microsoft.com> wrote in message
news:3b3201c48f99$ac020bc0$a601280a@phx.gbl...
Salut FxM
Cela ne marche pas non plus... Je vais essayer de trouver
une solution de contournement. Ceci dit, je reste à
l'écoute...
Merci encore,
François
-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:
Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
me
consacres
François
-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuter
la macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:
Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???
-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points les
virgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
en
VBA, les
nombres sont au format anglais, donc avec un point
comme
séparateur de
décimales. En affectant cette valeur numérique (avec
un
point) à une
cellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
Pour Excel, le séparateur décimal est le point.
On peut choisir de modifier le format d'affichage en affichant une virgule
à
la place du point. Mais si on utilise la fonction Replace pour remplacer
le
point, on verra la virgule utilisée comme séparateur décimal, remplacée
comme si c'était un point.
Sous toutes réserves.
"docm" wrote in message
news:Bonjour François.
Le problème semble être dû au format de la cellule.
Ceci fonctionne:
Rg.NumberFormat = "@" 'Format texte
Rg.Replace What:="", Replacement:=""
Rg.NumberFormat = "General"
Amicalement.
"François" wrote in message
news:3b3201c48f99$ac020bc0$
Salut FxM
Cela ne marche pas non plus... Je vais essayer de trouver
une solution de contournement. Ceci dit, je reste à
l'écoute...
Merci encore,
François-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
meconsacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec
un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
me
consacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec
un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:
Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
me
consacres
François
-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuter
la macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:
Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???
-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points les
virgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
en
VBA, les
nombres sont au format anglais, donc avec un point
comme
séparateur de
décimales. En affectant cette valeur numérique (avec
un
point) à une
cellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
me
consacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec
un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
me
consacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec
un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:
Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
me
consacres
François
-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuter
la macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:
Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???
-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points les
virgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
en
VBA, les
nombres sont au format anglais, donc avec un point
comme
séparateur de
décimales. En affectant cette valeur numérique (avec
un
point) à une
cellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
me
consacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec
un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
Bonjour François.
Le problème semble être dû au format de la cellule.
Ceci fonctionne:
Rg.NumberFormat = "@" 'Format texte
Rg.Replace What:="", Replacement:=""
Rg.NumberFormat = "General"
Amicalement.
"François" wrote in message
news:3b3201c48f99$ac020bc0$
Salut FxM
Cela ne marche pas non plus... Je vais essayer de trouver
une solution de contournement. Ceci dit, je reste à
l'écoute...
Merci encore,
François-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
meconsacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec
un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
Bonjour François.
Le problème semble être dû au format de la cellule.
Ceci fonctionne:
Rg.NumberFormat = "@" 'Format texte
Rg.Replace What:="", Replacement:=""
Rg.NumberFormat = "General"
Amicalement.
"François" <anonymous@discussions.microsoft.com> wrote in message
news:3b3201c48f99$ac020bc0$a601280a@phx.gbl...
Salut FxM
Cela ne marche pas non plus... Je vais essayer de trouver
une solution de contournement. Ceci dit, je reste à
l'écoute...
Merci encore,
François
-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:
Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
me
consacres
François
-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuter
la macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:
Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???
-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points les
virgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
en
VBA, les
nombres sont au format anglais, donc avec un point
comme
séparateur de
décimales. En affectant cette valeur numérique (avec
un
point) à une
cellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.
Bonjour François.
Le problème semble être dû au format de la cellule.
Ceci fonctionne:
Rg.NumberFormat = "@" 'Format texte
Rg.Replace What:="", Replacement:=""
Rg.NumberFormat = "General"
Amicalement.
"François" wrote in message
news:3b3201c48f99$ac020bc0$
Salut FxM
Cela ne marche pas non plus... Je vais essayer de trouver
une solution de contournement. Ceci dit, je reste à
l'écoute...
Merci encore,
François-----Message d'origine-----
Bonsoir,
Si tu es en Excel 97 (ce que je crois), remplace
replace
par
application.substitute
@+
FxM
François wrote:Salut Nicolas B.
Je viens de faire exactement ta manip, et VBA me
renvoie "Sub ou fonction non défini" sur Replace !!
Gloups !
Je reste preneur et merci encore pour le temps que tu
meconsacres
François-----Message d'origine-----
En modifiant un peu (sélectionne les cellules à traiter
avant d'exécuterla macro) :
Sub Toto()
For Each c In Selection
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
End Sub
A+
Nicolas B.
François wrote:Salut Nicolas B.
VBA me renvoie une erreur de compilation...
As tu une idée ???-----Message d'origine-----
Salut François,
Avec VBA et les nombres décimaux, il faut jongler
entre
les points lesvirgules... Essaie ceci :
For Each c In Char
c.Value = Replace(c, ".", "")
c.Value = Replace(c, ",", ".")
Next
Le premier Replace supprime tous les points.
Le deuxième remplace les virgules par des points, car
enVBA, lesnombres sont au format anglais, donc avec un point
commeséparateur dedécimales. En affectant cette valeur numérique (avec
un
point) à unecellule, le format local utilisé (ici, la virgule).
A+
Nicolas B.
.
.