Macro faire aux US ne marche en France: Problème de décimales
3 réponses
Mirage
J'ai récupéré une macro programmée aux US.
Pour qu'elle fonctionne, j'avais deux solutions:
Modifier mon environnement au format US (décimale, et autres caractères
internationaux) , faire marcher la macro puis me remettre en envronnement
Européen...
OU
Faire marcher la macro directement en environnement Européen (et là les €
s'affichent à la place des $ dans les formats numériques )
Sauf que bizarrement, lorsque je suis en environnement Européen,
l'instruction SUMIF ne fonctionne pas avec un critère "<10,5"
mais elle fonctionne avec le critère "<10.5"
Le problème c'est que le reste de la macro, et plus généralement excel, ne
reconnait pas le format décimal "." dans le reste de la macro !!
Donc finalement, ma macro ne marche que lorsque les données utilisées pour
le critère sont des entiers.
Si quelqu'un a la solution je prends !
Merci de votre aide
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Mirage,
Pour la fonction SumIf, tu peux utiliser ce type de syntaxe :
Toto = Plage nommée (insertion / nom / définir ... '---------------------- Dim X As String Dim LaSomme As Double X = 10.5 X = Application.Substitute(10.5, ",", ".") LaSomme = Application.SumIf(Range("Toto"), "<" & X) MsgBox LaSomme '----------------------
Salutations!
"Mirage" a écrit dans le message de news: J'ai récupéré une macro programmée aux US. Pour qu'elle fonctionne, j'avais deux solutions:
Modifier mon environnement au format US (décimale, et autres caractères internationaux) , faire marcher la macro puis me remettre en envronnement Européen... OU Faire marcher la macro directement en environnement Européen (et là les ? s'affichent à la place des $ dans les formats numériques ) Sauf que bizarrement, lorsque je suis en environnement Européen, l'instruction SUMIF ne fonctionne pas avec un critère "<10,5" mais elle fonctionne avec le critère "<10.5" Le problème c'est que le reste de la macro, et plus généralement excel, ne reconnait pas le format décimal "." dans le reste de la macro !!
Donc finalement, ma macro ne marche que lorsque les données utilisées pour le critère sont des entiers.
Si quelqu'un a la solution je prends ! Merci de votre aide
Bonjour Mirage,
Pour la fonction SumIf, tu peux utiliser ce type de syntaxe :
Toto = Plage nommée (insertion / nom / définir ...
'----------------------
Dim X As String
Dim LaSomme As Double
X = 10.5
X = Application.Substitute(10.5, ",", ".")
LaSomme = Application.SumIf(Range("Toto"), "<" & X)
MsgBox LaSomme
'----------------------
Salutations!
"Mirage" <Mirage@discussions.microsoft.com> a écrit dans le message de news: 9CB8766F-CD64-42D4-A95E-E1455CF9FF21@microsoft.com...
J'ai récupéré une macro programmée aux US.
Pour qu'elle fonctionne, j'avais deux solutions:
Modifier mon environnement au format US (décimale, et autres caractères
internationaux) , faire marcher la macro puis me remettre en envronnement
Européen...
OU
Faire marcher la macro directement en environnement Européen (et là les ?
s'affichent à la place des $ dans les formats numériques )
Sauf que bizarrement, lorsque je suis en environnement Européen,
l'instruction SUMIF ne fonctionne pas avec un critère "<10,5"
mais elle fonctionne avec le critère "<10.5"
Le problème c'est que le reste de la macro, et plus généralement excel, ne
reconnait pas le format décimal "." dans le reste de la macro !!
Donc finalement, ma macro ne marche que lorsque les données utilisées pour
le critère sont des entiers.
Si quelqu'un a la solution je prends !
Merci de votre aide
Pour la fonction SumIf, tu peux utiliser ce type de syntaxe :
Toto = Plage nommée (insertion / nom / définir ... '---------------------- Dim X As String Dim LaSomme As Double X = 10.5 X = Application.Substitute(10.5, ",", ".") LaSomme = Application.SumIf(Range("Toto"), "<" & X) MsgBox LaSomme '----------------------
Salutations!
"Mirage" a écrit dans le message de news: J'ai récupéré une macro programmée aux US. Pour qu'elle fonctionne, j'avais deux solutions:
Modifier mon environnement au format US (décimale, et autres caractères internationaux) , faire marcher la macro puis me remettre en envronnement Européen... OU Faire marcher la macro directement en environnement Européen (et là les ? s'affichent à la place des $ dans les formats numériques ) Sauf que bizarrement, lorsque je suis en environnement Européen, l'instruction SUMIF ne fonctionne pas avec un critère "<10,5" mais elle fonctionne avec le critère "<10.5" Le problème c'est que le reste de la macro, et plus généralement excel, ne reconnait pas le format décimal "." dans le reste de la macro !!
Donc finalement, ma macro ne marche que lorsque les données utilisées pour le critère sont des entiers.
Si quelqu'un a la solution je prends ! Merci de votre aide
Mirage
Merci beaucoup. Bizarrement, la fonction substitute ou substitue, ne fonctionne pas ! elle n'est pas reconnue...ou ne fonctionne pas avec une variable (mon 10.5 est en fait une variable) En revanche tu m'as mis sur la bonne piste: après quelques tatonnements j'aii utilisé la fonction "replace (string,".",",") et là ça marche !
Merci de ton aide. Mirage
Bonjour Mirage,
Pour la fonction SumIf, tu peux utiliser ce type de syntaxe :
Toto = Plage nommée (insertion / nom / définir ... '---------------------- Dim X As String Dim LaSomme As Double X = 10.5 X = Application.Substitute(10.5, ",", ".") LaSomme = Application.SumIf(Range("Toto"), "<" & X) MsgBox LaSomme '----------------------
Salutations!
"Mirage" a écrit dans le message de news: J'ai récupéré une macro programmée aux US. Pour qu'elle fonctionne, j'avais deux solutions:
Modifier mon environnement au format US (décimale, et autres caractères internationaux) , faire marcher la macro puis me remettre en envronnement Européen... OU Faire marcher la macro directement en environnement Européen (et là les ? s'affichent à la place des $ dans les formats numériques ) Sauf que bizarrement, lorsque je suis en environnement Européen, l'instruction SUMIF ne fonctionne pas avec un critère "<10,5" mais elle fonctionne avec le critère "<10.5" Le problème c'est que le reste de la macro, et plus généralement excel, ne reconnait pas le format décimal "." dans le reste de la macro !!
Donc finalement, ma macro ne marche que lorsque les données utilisées pour le critère sont des entiers.
Si quelqu'un a la solution je prends ! Merci de votre aide
Merci beaucoup.
Bizarrement, la fonction substitute ou substitue, ne fonctionne pas ! elle
n'est pas reconnue...ou ne fonctionne pas avec une variable (mon 10.5 est en
fait une variable)
En revanche tu m'as mis sur la bonne piste: après quelques tatonnements
j'aii utilisé la fonction "replace (string,".",",") et là ça marche !
Merci de ton aide.
Mirage
Bonjour Mirage,
Pour la fonction SumIf, tu peux utiliser ce type de syntaxe :
Toto = Plage nommée (insertion / nom / définir ...
'----------------------
Dim X As String
Dim LaSomme As Double
X = 10.5
X = Application.Substitute(10.5, ",", ".")
LaSomme = Application.SumIf(Range("Toto"), "<" & X)
MsgBox LaSomme
'----------------------
Salutations!
"Mirage" <Mirage@discussions.microsoft.com> a écrit dans le message de news: 9CB8766F-CD64-42D4-A95E-E1455CF9FF21@microsoft.com...
J'ai récupéré une macro programmée aux US.
Pour qu'elle fonctionne, j'avais deux solutions:
Modifier mon environnement au format US (décimale, et autres caractères
internationaux) , faire marcher la macro puis me remettre en envronnement
Européen...
OU
Faire marcher la macro directement en environnement Européen (et là les ?
s'affichent à la place des $ dans les formats numériques )
Sauf que bizarrement, lorsque je suis en environnement Européen,
l'instruction SUMIF ne fonctionne pas avec un critère "<10,5"
mais elle fonctionne avec le critère "<10.5"
Le problème c'est que le reste de la macro, et plus généralement excel, ne
reconnait pas le format décimal "." dans le reste de la macro !!
Donc finalement, ma macro ne marche que lorsque les données utilisées pour
le critère sont des entiers.
Si quelqu'un a la solution je prends !
Merci de votre aide
Merci beaucoup. Bizarrement, la fonction substitute ou substitue, ne fonctionne pas ! elle n'est pas reconnue...ou ne fonctionne pas avec une variable (mon 10.5 est en fait une variable) En revanche tu m'as mis sur la bonne piste: après quelques tatonnements j'aii utilisé la fonction "replace (string,".",",") et là ça marche !
Merci de ton aide. Mirage
Bonjour Mirage,
Pour la fonction SumIf, tu peux utiliser ce type de syntaxe :
Toto = Plage nommée (insertion / nom / définir ... '---------------------- Dim X As String Dim LaSomme As Double X = 10.5 X = Application.Substitute(10.5, ",", ".") LaSomme = Application.SumIf(Range("Toto"), "<" & X) MsgBox LaSomme '----------------------
Salutations!
"Mirage" a écrit dans le message de news: J'ai récupéré une macro programmée aux US. Pour qu'elle fonctionne, j'avais deux solutions:
Modifier mon environnement au format US (décimale, et autres caractères internationaux) , faire marcher la macro puis me remettre en envronnement Européen... OU Faire marcher la macro directement en environnement Européen (et là les ? s'affichent à la place des $ dans les formats numériques ) Sauf que bizarrement, lorsque je suis en environnement Européen, l'instruction SUMIF ne fonctionne pas avec un critère "<10,5" mais elle fonctionne avec le critère "<10.5" Le problème c'est que le reste de la macro, et plus généralement excel, ne reconnait pas le format décimal "." dans le reste de la macro !!
Donc finalement, ma macro ne marche que lorsque les données utilisées pour le critère sont des entiers.
Si quelqu'un a la solution je prends ! Merci de votre aide
michdenis
Bonjour Mirage,
As-tu essayé ceci : Dans cette ligne : X = Application.Substitute(10.5, ",", ".") J'ai oublié de remplacer 10.5 par la variable X ....
Dim LaSomme As Double X = 10.5 X = Application.WorksheetFunction.Substitute(X, ",", ".") LaSomme = Application.SumIf(Range("Toto"), "<" & X) MsgBox LaSomme
Salutations!
"Mirage" a écrit dans le message de news: Merci beaucoup. Bizarrement, la fonction substitute ou substitue, ne fonctionne pas ! elle n'est pas reconnue...ou ne fonctionne pas avec une variable (mon 10.5 est en fait une variable) En revanche tu m'as mis sur la bonne piste: après quelques tatonnements j'aii utilisé la fonction "replace (string,".",",") et là ça marche !
Merci de ton aide. Mirage
Bonjour Mirage,
Pour la fonction SumIf, tu peux utiliser ce type de syntaxe :
Toto = Plage nommée (insertion / nom / définir ... '---------------------- Dim X As String Dim LaSomme As Double X = 10.5 X = Application.Substitute(10.5, ",", ".") LaSomme = Application.SumIf(Range("Toto"), "<" & X) MsgBox LaSomme '----------------------
Salutations!
"Mirage" a écrit dans le message de news: J'ai récupéré une macro programmée aux US. Pour qu'elle fonctionne, j'avais deux solutions:
Modifier mon environnement au format US (décimale, et autres caractères internationaux) , faire marcher la macro puis me remettre en envronnement Européen... OU Faire marcher la macro directement en environnement Européen (et là les ? s'affichent à la place des $ dans les formats numériques ) Sauf que bizarrement, lorsque je suis en environnement Européen, l'instruction SUMIF ne fonctionne pas avec un critère "<10,5" mais elle fonctionne avec le critère "<10.5" Le problème c'est que le reste de la macro, et plus généralement excel, ne reconnait pas le format décimal "." dans le reste de la macro !!
Donc finalement, ma macro ne marche que lorsque les données utilisées pour le critère sont des entiers.
Si quelqu'un a la solution je prends ! Merci de votre aide
Bonjour Mirage,
As-tu essayé ceci :
Dans cette ligne : X = Application.Substitute(10.5, ",", ".")
J'ai oublié de remplacer 10.5 par la variable X ....
Dim LaSomme As Double
X = 10.5
X = Application.WorksheetFunction.Substitute(X, ",", ".")
LaSomme = Application.SumIf(Range("Toto"), "<" & X)
MsgBox LaSomme
Salutations!
"Mirage" <Mirage@discussions.microsoft.com> a écrit dans le message de news: 6FD37B4A-CA79-45CA-BACD-2D111D95F2A6@microsoft.com...
Merci beaucoup.
Bizarrement, la fonction substitute ou substitue, ne fonctionne pas ! elle
n'est pas reconnue...ou ne fonctionne pas avec une variable (mon 10.5 est en
fait une variable)
En revanche tu m'as mis sur la bonne piste: après quelques tatonnements
j'aii utilisé la fonction "replace (string,".",",") et là ça marche !
Merci de ton aide.
Mirage
Bonjour Mirage,
Pour la fonction SumIf, tu peux utiliser ce type de syntaxe :
Toto = Plage nommée (insertion / nom / définir ...
'----------------------
Dim X As String
Dim LaSomme As Double
X = 10.5
X = Application.Substitute(10.5, ",", ".")
LaSomme = Application.SumIf(Range("Toto"), "<" & X)
MsgBox LaSomme
'----------------------
Salutations!
"Mirage" <Mirage@discussions.microsoft.com> a écrit dans le message de news: 9CB8766F-CD64-42D4-A95E-E1455CF9FF21@microsoft.com...
J'ai récupéré une macro programmée aux US.
Pour qu'elle fonctionne, j'avais deux solutions:
Modifier mon environnement au format US (décimale, et autres caractères
internationaux) , faire marcher la macro puis me remettre en envronnement
Européen...
OU
Faire marcher la macro directement en environnement Européen (et là les ?
s'affichent à la place des $ dans les formats numériques )
Sauf que bizarrement, lorsque je suis en environnement Européen,
l'instruction SUMIF ne fonctionne pas avec un critère "<10,5"
mais elle fonctionne avec le critère "<10.5"
Le problème c'est que le reste de la macro, et plus généralement excel, ne
reconnait pas le format décimal "." dans le reste de la macro !!
Donc finalement, ma macro ne marche que lorsque les données utilisées pour
le critère sont des entiers.
Si quelqu'un a la solution je prends !
Merci de votre aide
As-tu essayé ceci : Dans cette ligne : X = Application.Substitute(10.5, ",", ".") J'ai oublié de remplacer 10.5 par la variable X ....
Dim LaSomme As Double X = 10.5 X = Application.WorksheetFunction.Substitute(X, ",", ".") LaSomme = Application.SumIf(Range("Toto"), "<" & X) MsgBox LaSomme
Salutations!
"Mirage" a écrit dans le message de news: Merci beaucoup. Bizarrement, la fonction substitute ou substitue, ne fonctionne pas ! elle n'est pas reconnue...ou ne fonctionne pas avec une variable (mon 10.5 est en fait une variable) En revanche tu m'as mis sur la bonne piste: après quelques tatonnements j'aii utilisé la fonction "replace (string,".",",") et là ça marche !
Merci de ton aide. Mirage
Bonjour Mirage,
Pour la fonction SumIf, tu peux utiliser ce type de syntaxe :
Toto = Plage nommée (insertion / nom / définir ... '---------------------- Dim X As String Dim LaSomme As Double X = 10.5 X = Application.Substitute(10.5, ",", ".") LaSomme = Application.SumIf(Range("Toto"), "<" & X) MsgBox LaSomme '----------------------
Salutations!
"Mirage" a écrit dans le message de news: J'ai récupéré une macro programmée aux US. Pour qu'elle fonctionne, j'avais deux solutions:
Modifier mon environnement au format US (décimale, et autres caractères internationaux) , faire marcher la macro puis me remettre en envronnement Européen... OU Faire marcher la macro directement en environnement Européen (et là les ? s'affichent à la place des $ dans les formats numériques ) Sauf que bizarrement, lorsque je suis en environnement Européen, l'instruction SUMIF ne fonctionne pas avec un critère "<10,5" mais elle fonctionne avec le critère "<10.5" Le problème c'est que le reste de la macro, et plus généralement excel, ne reconnait pas le format décimal "." dans le reste de la macro !!
Donc finalement, ma macro ne marche que lorsque les données utilisées pour le critère sont des entiers.
Si quelqu'un a la solution je prends ! Merci de votre aide