Aprés avoir sélectionné toutes tes données (en format texte obligatoirement) Utilises ce code :
For Each c In Selection c.Value = Replace(c, ".", ",") Next
Celà devrait convenir
Dis moi !!!!!
Sylian
Malheureusement, j'obtient le même résultat les celulles marquées initialement, "3.19205" deviennent "319 205" (sans les guillemets bien entendu). Je pense qu'il y a une histoire de format de celulle qui doit entrer en jeu mais quoiqu'il en soit j'aimerai tout automatiser par VBA.
En tout cas merci pour le coup de main ! Une autre idée ?
FFO a écrit :
Salut à toi
Aprés avoir sélectionné toutes tes données (en format texte obligatoirement) Utilises ce code :
For Each c In Selection c.Value = Replace(c, ".", ",") Next
Celà devrait convenir
Dis moi !!!!!
Malheureusement, j'obtient le même résultat les celulles marquées
initialement, "3.19205" deviennent "319 205" (sans les guillemets bien
entendu).
Je pense qu'il y a une histoire de format de celulle qui doit entrer en
jeu mais quoiqu'il en soit j'aimerai tout automatiser par VBA.
En tout cas merci pour le coup de main !
Une autre idée ?
FFO a écrit :
Salut à toi
Aprés avoir sélectionné toutes tes données (en format texte obligatoirement)
Utilises ce code :
For Each c In Selection
c.Value = Replace(c, ".", ",")
Next
Malheureusement, j'obtient le même résultat les celulles marquées initialement, "3.19205" deviennent "319 205" (sans les guillemets bien entendu). Je pense qu'il y a une histoire de format de celulle qui doit entrer en jeu mais quoiqu'il en soit j'aimerai tout automatiser par VBA.
En tout cas merci pour le coup de main ! Une autre idée ?
FFO a écrit :
Salut à toi
Aprés avoir sélectionné toutes tes données (en format texte obligatoirement) Utilises ce code :
For Each c In Selection c.Value = Replace(c, ".", ",") Next
Celà devrait convenir
Dis moi !!!!!
Sylian
J'ai également essayé les méthodes citées précédemment (par Isabelle entre autre) mais sans succès.
Voici un exemple des chiffres que je n'arrive pas à convertir en VBA alors qu'un simple rechercher/remplacer fonctionne ...
Aprés avoir sélectionné toutes tes données (en format texte obligatoirement) Utilises ce code :
For Each c In Selection c.Value = Replace(c, ".", ",") Next
Celà devrait convenir
Dis moi !!!!!
Mishell
C'est parce que tu fais disparaître le séparateur décimal qui est le point dans tes préférences (Options régionales). Si tu veux la virgule comme séparateur décimal, modifie cette option dans les Options régionales de Windows.
Mishell
"Sylian" wrote in message news:4a634da9$0$437$
Bonjour,
Je cherche à transformer un point en virgule en VBA Excel J'ai lancé l'enregistreur de macro qui m'a orienté vers un :
Si cela fonctionne bien en "direct", quand je lance cette simple macro ma cellule comportant le chiffre -1.6535 se transforme en 16 535 !
Une solution pour que la macro fonctionne ?
C'est parce que tu fais disparaître le séparateur décimal qui est le point
dans tes préférences (Options régionales).
Si tu veux la virgule comme séparateur décimal, modifie cette option dans
les Options régionales de Windows.
Mishell
"Sylian" <utilisateur@exemple.fr> wrote in message
news:4a634da9$0$437$426a74cc@news.free.fr...
Bonjour,
Je cherche à transformer un point en virgule en VBA Excel
J'ai lancé l'enregistreur de macro qui m'a orienté vers un :
C'est parce que tu fais disparaître le séparateur décimal qui est le point dans tes préférences (Options régionales). Si tu veux la virgule comme séparateur décimal, modifie cette option dans les Options régionales de Windows.
Mishell
"Sylian" wrote in message news:4a634da9$0$437$
Bonjour,
Je cherche à transformer un point en virgule en VBA Excel J'ai lancé l'enregistreur de macro qui m'a orienté vers un :
Si cela fonctionne bien en "direct", quand je lance cette simple macro ma cellule comportant le chiffre -1.6535 se transforme en 16 535 !
Une solution pour que la macro fonctionne ?
FFO
Rebonjour à toi
Dans ton fichier les données n'étaient pas en format Texte comme je te l'avait expressément recommandé Ci-joint donc tu le trouveras corrigé avec mon code Chez moi il fonctionne parfaitement
Dans ton fichier les données n'étaient pas en format Texte comme je te
l'avait expressément recommandé
Ci-joint donc tu le trouveras corrigé avec mon code
Chez moi il fonctionne parfaitement
Dans ton fichier les données n'étaient pas en format Texte comme je te l'avait expressément recommandé Ci-joint donc tu le trouveras corrigé avec mon code Chez moi il fonctionne parfaitement
Mishell a raison, et si on ouvre ton fichier en exemple c'est déjà converti (puisque moi je suis en fr , virgule) D'ailleurs si tu essaye dans ce cas de saisir -1.635 le pav num lui mettrra automatiquement une virgule et si pour faire le point tu essaye d'utiliser la partie alpha du clavier tu auras un message erreur: Pour y arriver il te faudrait mettre un ' devant '-1.635 qui donnera -1.635 mais s'allignera par défaut à gauche et normal c'est du texte!
Cordialement.
-- lSteph
On 20 juil, 00:14, Sylian wrote:
J'ai également essayé les méthodes citées précédemment (par I sabelle entre autre) mais sans succès.
Voici un exemple des chiffres que je n'arrive pas à convertir en VBA alors qu'un simple rechercher/remplacer fonctionne ...
> Aprés avoir sélectionné toutes tes données (en format texte obl igatoirement) > Utilises ce code :
> For Each c In Selection > c.Value = Replace(c, ".", ",") > Next
> Celà devrait convenir
> Dis moi !!!!!- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Mishell a raison, et si on ouvre ton fichier en exemple c'est déjà
converti (puisque moi je suis en fr , virgule)
D'ailleurs si tu essaye dans ce cas de saisir -1.635
le pav num lui mettrra automatiquement une virgule
et si pour faire le point tu essaye d'utiliser
la partie alpha du clavier tu auras un message erreur:
Pour y arriver il te faudrait mettre un ' devant
'-1.635 qui donnera -1.635 mais s'allignera par défaut à gauche et
normal c'est du texte!
Cordialement.
--
lSteph
On 20 juil, 00:14, Sylian <utilisat...@exemple.fr> wrote:
J'ai également essayé les méthodes citées précédemment (par I sabelle
entre autre) mais sans succès.
Voici un exemple des chiffres que je n'arrive pas à convertir en VBA
alors qu'un simple rechercher/remplacer fonctionne ...
Mishell a raison, et si on ouvre ton fichier en exemple c'est déjà converti (puisque moi je suis en fr , virgule) D'ailleurs si tu essaye dans ce cas de saisir -1.635 le pav num lui mettrra automatiquement une virgule et si pour faire le point tu essaye d'utiliser la partie alpha du clavier tu auras un message erreur: Pour y arriver il te faudrait mettre un ' devant '-1.635 qui donnera -1.635 mais s'allignera par défaut à gauche et normal c'est du texte!
Cordialement.
-- lSteph
On 20 juil, 00:14, Sylian wrote:
J'ai également essayé les méthodes citées précédemment (par I sabelle entre autre) mais sans succès.
Voici un exemple des chiffres que je n'arrive pas à convertir en VBA alors qu'un simple rechercher/remplacer fonctionne ...
> Aprés avoir sélectionné toutes tes données (en format texte obl igatoirement) > Utilises ce code :
> For Each c In Selection > c.Value = Replace(c, ".", ",") > Next
> Celà devrait convenir
> Dis moi !!!!!- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Sylian
Merci pour ta réponse :) Mais comment rajouter un ' devant '-1.635 en VBA avec en simple "'" & ? Sinon je ne comprends vraiment pas pourquoi la conversion fonctionne très bien sous Excel 2007 et pas sous Excel 2003 ? Là je bloque vraiment.
En tout cas merci à tous pour vos interventions à chaque fois plus lumineuses.
LSteph a écrit :
Bonjour,
Mishell a raison, et si on ouvre ton fichier en exemple c'est déjà converti (puisque moi je suis en fr , virgule) D'ailleurs si tu essaye dans ce cas de saisir -1.635 le pav num lui mettrra automatiquement une virgule et si pour faire le point tu essaye d'utiliser la partie alpha du clavier tu auras un message erreur: Pour y arriver il te faudrait mettre un ' devant '-1.635 qui donnera -1.635 mais s'allignera par défaut à gauche et normal c'est du texte!
Cordialement.
-- lSteph
On 20 juil, 00:14, Sylian wrote:
J'ai également essayé les méthodes citées précédemment (par Isabelle entre autre) mais sans succès.
Voici un exemple des chiffres que je n'arrive pas à convertir en VBA alors qu'un simple rechercher/remplacer fonctionne ...
Salut à toi Aprés avoir sélectionné toutes tes données (en format texte obligatoirement) Utilises ce code : For Each c In Selection c.Value = Replace(c, ".", ",") Next Celà devrait convenir Dis moi !!!!!- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Merci pour ta réponse :)
Mais comment rajouter un ' devant '-1.635 en VBA avec en simple "'" & ?
Sinon je ne comprends vraiment pas pourquoi la conversion fonctionne
très bien sous Excel 2007 et pas sous Excel 2003 ? Là je bloque vraiment.
En tout cas merci à tous pour vos interventions à chaque fois plus
lumineuses.
LSteph a écrit :
Bonjour,
Mishell a raison, et si on ouvre ton fichier en exemple c'est déjà
converti (puisque moi je suis en fr , virgule)
D'ailleurs si tu essaye dans ce cas de saisir -1.635
le pav num lui mettrra automatiquement une virgule
et si pour faire le point tu essaye d'utiliser
la partie alpha du clavier tu auras un message erreur:
Pour y arriver il te faudrait mettre un ' devant
'-1.635 qui donnera -1.635 mais s'allignera par défaut à gauche et
normal c'est du texte!
Cordialement.
--
lSteph
On 20 juil, 00:14, Sylian <utilisat...@exemple.fr> wrote:
J'ai également essayé les méthodes citées précédemment (par Isabelle
entre autre) mais sans succès.
Voici un exemple des chiffres que je n'arrive pas à convertir en VBA
alors qu'un simple rechercher/remplacer fonctionne ...
Salut à toi
Aprés avoir sélectionné toutes tes données (en format texte obligatoirement)
Utilises ce code :
For Each c In Selection
c.Value = Replace(c, ".", ",")
Next
Celà devrait convenir
Dis moi !!!!!- Masquer le texte des messages précédents -
Merci pour ta réponse :) Mais comment rajouter un ' devant '-1.635 en VBA avec en simple "'" & ? Sinon je ne comprends vraiment pas pourquoi la conversion fonctionne très bien sous Excel 2007 et pas sous Excel 2003 ? Là je bloque vraiment.
En tout cas merci à tous pour vos interventions à chaque fois plus lumineuses.
LSteph a écrit :
Bonjour,
Mishell a raison, et si on ouvre ton fichier en exemple c'est déjà converti (puisque moi je suis en fr , virgule) D'ailleurs si tu essaye dans ce cas de saisir -1.635 le pav num lui mettrra automatiquement une virgule et si pour faire le point tu essaye d'utiliser la partie alpha du clavier tu auras un message erreur: Pour y arriver il te faudrait mettre un ' devant '-1.635 qui donnera -1.635 mais s'allignera par défaut à gauche et normal c'est du texte!
Cordialement.
-- lSteph
On 20 juil, 00:14, Sylian wrote:
J'ai également essayé les méthodes citées précédemment (par Isabelle entre autre) mais sans succès.
Voici un exemple des chiffres que je n'arrive pas à convertir en VBA alors qu'un simple rechercher/remplacer fonctionne ...
Salut à toi Aprés avoir sélectionné toutes tes données (en format texte obligatoirement) Utilises ce code : For Each c In Selection c.Value = Replace(c, ".", ",") Next Celà devrait convenir Dis moi !!!!!- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Sylian
Voici une solution qui peut-être aidera les personnes qui auront connu le même problème que moi.
1 - Il faut déterminer la version d'Excel utilisé 2 - pour 2002-2003, il faut changer les paramètres dans les options d'Excels pour forcer le séparateur décimal de se mettre en virgule et non en point. 3 - pour excel 2007, il faut remplacer le point par ... par un autre point (celui du pavé numérique) et cela a pour effet de tout afficher avec des virgules.
1 ' Teste la version d'Excel 2003 ou 2007 ?
Dim XL2007 as Boolean If Val(Application.Version) >= 11 Then XL2007 = True Else XL2007 = False End If
2 'pour Excel 2002/2003 If XL2007 = False Then Application.DecimalSeparator = "," End If
Voici une solution qui peut-être aidera les personnes qui auront connu
le même problème que moi.
1 - Il faut déterminer la version d'Excel utilisé
2 - pour 2002-2003, il faut changer les paramètres dans les options
d'Excels pour forcer le séparateur décimal de se mettre en virgule et
non en point.
3 - pour excel 2007, il faut remplacer le point par ... par un autre
point (celui du pavé numérique) et cela a pour effet de tout afficher
avec des virgules.
1 ' Teste la version d'Excel 2003 ou 2007 ?
Dim XL2007 as Boolean
If Val(Application.Version) >= 11 Then
XL2007 = True
Else
XL2007 = False
End If
2 'pour Excel 2002/2003
If XL2007 = False Then
Application.DecimalSeparator = ","
End If
Voici une solution qui peut-être aidera les personnes qui auront connu le même problème que moi.
1 - Il faut déterminer la version d'Excel utilisé 2 - pour 2002-2003, il faut changer les paramètres dans les options d'Excels pour forcer le séparateur décimal de se mettre en virgule et non en point. 3 - pour excel 2007, il faut remplacer le point par ... par un autre point (celui du pavé numérique) et cela a pour effet de tout afficher avec des virgules.
1 ' Teste la version d'Excel 2003 ou 2007 ?
Dim XL2007 as Boolean If Val(Application.Version) >= 11 Then XL2007 = True Else XL2007 = False End If
2 'pour Excel 2002/2003 If XL2007 = False Then Application.DecimalSeparator = "," End If
C'est vrai aussi pour d'autres versions et cela était déjà connu voir ma réponse dans un autre fil du 15/02 http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/threa d/8340667ff469b5b7/66ab09c995ee6f24?lnk=gst&q=lSteph%2Breplace%2B+what% 3A%3D%2B%22.%22#66ab09c995ee6f24
toutefois cela n'a rien à voir il me semble avec le pb tel qu'il se présente ici selon ton fichier exemple qui se solutionne simplement sans nécessiter de conversion, par le choix des bons paramêtres régionaux comme l'a souligné Mishell
Cordialement.
-- lSteph
On 21 juil, 10:35, Sylian wrote:
Voici une solution qui peut-être aidera les personnes qui auront connu le même problème que moi.
1 - Il faut déterminer la version d'Excel utilisé 2 - pour 2002-2003, il faut changer les paramètres dans les options d'Excels pour forcer le séparateur décimal de se mettre en virgule et non en point. 3 - pour excel 2007, il faut remplacer le point par ... par un autre point (celui du pavé numérique) et cela a pour effet de tout afficher avec des virgules.
1 ' Teste la version d'Excel 2003 ou 2007 ?
Dim XL2007 as Boolean If Val(Application.Version) >= 11 Then XL2007 = True Else XL2007 = False End If
2 'pour Excel 2002/2003 If XL2007 = False Then Application.DecimalSeparator = "," End If
C'est vrai aussi pour d'autres versions et cela était déjà connu voir
ma réponse dans un autre fil du 15/02
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/threa d/8340667ff469b5b7/66ab09c995ee6f24?lnk=gst&q=lSteph%2Breplace%2B+what% 3A%3D%2B%22.%22#66ab09c995ee6f24
toutefois cela n'a rien à voir il me semble avec le pb tel qu'il se
présente ici selon ton fichier exemple qui
se solutionne simplement sans nécessiter de conversion, par le choix
des bons paramêtres régionaux comme l'a souligné Mishell
Cordialement.
--
lSteph
On 21 juil, 10:35, Sylian <utilisat...@exemple.fr> wrote:
Voici une solution qui peut-être aidera les personnes qui auront connu
le même problème que moi.
1 - Il faut déterminer la version d'Excel utilisé
2 - pour 2002-2003, il faut changer les paramètres dans les options
d'Excels pour forcer le séparateur décimal de se mettre en virgule et
non en point.
3 - pour excel 2007, il faut remplacer le point par ... par un autre
point (celui du pavé numérique) et cela a pour effet de tout afficher
avec des virgules.
1 ' Teste la version d'Excel 2003 ou 2007 ?
Dim XL2007 as Boolean
If Val(Application.Version) >= 11 Then
XL2007 = True
Else
XL2007 = False
End If
2 'pour Excel 2002/2003
If XL2007 = False Then
Application.DecimalSeparator = ","
End If
C'est vrai aussi pour d'autres versions et cela était déjà connu voir ma réponse dans un autre fil du 15/02 http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/threa d/8340667ff469b5b7/66ab09c995ee6f24?lnk=gst&q=lSteph%2Breplace%2B+what% 3A%3D%2B%22.%22#66ab09c995ee6f24
toutefois cela n'a rien à voir il me semble avec le pb tel qu'il se présente ici selon ton fichier exemple qui se solutionne simplement sans nécessiter de conversion, par le choix des bons paramêtres régionaux comme l'a souligné Mishell
Cordialement.
-- lSteph
On 21 juil, 10:35, Sylian wrote:
Voici une solution qui peut-être aidera les personnes qui auront connu le même problème que moi.
1 - Il faut déterminer la version d'Excel utilisé 2 - pour 2002-2003, il faut changer les paramètres dans les options d'Excels pour forcer le séparateur décimal de se mettre en virgule et non en point. 3 - pour excel 2007, il faut remplacer le point par ... par un autre point (celui du pavé numérique) et cela a pour effet de tout afficher avec des virgules.
1 ' Teste la version d'Excel 2003 ou 2007 ?
Dim XL2007 as Boolean If Val(Application.Version) >= 11 Then XL2007 = True Else XL2007 = False End If
2 'pour Excel 2002/2003 If XL2007 = False Then Application.DecimalSeparator = "," End If
Bonjour et Merci LStpeh pour ta remarque. J'ai bien aimé le lien que tu as mis avec tes explications et tes différents codes. Seulement pour mon fichier en exemple, changer les paramètres régionaux suffit sous XL2003 mais cela ne fait rien sous mon XL2007 (étrangement). C'est pourquoi j'ai opté par cette méthode alternative car je devrais importer pas mal de fichiers dans le genre.
Cordialement,
LSteph a écrit :
Bonjour,
C'est vrai aussi pour d'autres versions et cela était déjà connu voir ma réponse dans un autre fil du 15/02 http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/8340667ff469b5b7/66ab09c995ee6f24?lnk=gst&q=lSteph%2Breplace%2B+what%3A%3D%2B%22.%22#66ab09c995ee6f24
toutefois cela n'a rien à voir il me semble avec le pb tel qu'il se présente ici selon ton fichier exemple qui se solutionne simplement sans nécessiter de conversion, par le choix des bons paramêtres régionaux comme l'a souligné Mishell
Cordialement.
-- lSteph
On 21 juil, 10:35, Sylian wrote:
Voici une solution qui peut-être aidera les personnes qui auront connu le même problème que moi.
1 - Il faut déterminer la version d'Excel utilisé 2 - pour 2002-2003, il faut changer les paramètres dans les options d'Excels pour forcer le séparateur décimal de se mettre en virgule et non en point. 3 - pour excel 2007, il faut remplacer le point par ... par un autre point (celui du pavé numérique) et cela a pour effet de tout afficher avec des virgules.
1 ' Teste la version d'Excel 2003 ou 2007 ?
Dim XL2007 as Boolean If Val(Application.Version) >= 11 Then XL2007 = True Else XL2007 = False End If
2 'pour Excel 2002/2003 If XL2007 = False Then Application.DecimalSeparator = "," End If
Bonjour et Merci LStpeh pour ta remarque.
J'ai bien aimé le lien que tu as mis avec tes explications et tes
différents codes.
Seulement pour mon fichier en exemple, changer les paramètres régionaux
suffit sous XL2003 mais cela ne fait rien sous mon XL2007 (étrangement).
C'est pourquoi j'ai opté par cette méthode alternative car je devrais
importer pas mal de fichiers dans le genre.
Cordialement,
LSteph a écrit :
Bonjour,
C'est vrai aussi pour d'autres versions et cela était déjà connu voir
ma réponse dans un autre fil du 15/02
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/8340667ff469b5b7/66ab09c995ee6f24?lnk=gst&q=lSteph%2Breplace%2B+what%3A%3D%2B%22.%22#66ab09c995ee6f24
toutefois cela n'a rien à voir il me semble avec le pb tel qu'il se
présente ici selon ton fichier exemple qui
se solutionne simplement sans nécessiter de conversion, par le choix
des bons paramêtres régionaux comme l'a souligné Mishell
Cordialement.
--
lSteph
On 21 juil, 10:35, Sylian <utilisat...@exemple.fr> wrote:
Voici une solution qui peut-être aidera les personnes qui auront connu
le même problème que moi.
1 - Il faut déterminer la version d'Excel utilisé
2 - pour 2002-2003, il faut changer les paramètres dans les options
d'Excels pour forcer le séparateur décimal de se mettre en virgule et
non en point.
3 - pour excel 2007, il faut remplacer le point par ... par un autre
point (celui du pavé numérique) et cela a pour effet de tout afficher
avec des virgules.
1 ' Teste la version d'Excel 2003 ou 2007 ?
Dim XL2007 as Boolean
If Val(Application.Version) >= 11 Then
XL2007 = True
Else
XL2007 = False
End If
2 'pour Excel 2002/2003
If XL2007 = False Then
Application.DecimalSeparator = ","
End If
Bonjour et Merci LStpeh pour ta remarque. J'ai bien aimé le lien que tu as mis avec tes explications et tes différents codes. Seulement pour mon fichier en exemple, changer les paramètres régionaux suffit sous XL2003 mais cela ne fait rien sous mon XL2007 (étrangement). C'est pourquoi j'ai opté par cette méthode alternative car je devrais importer pas mal de fichiers dans le genre.
Cordialement,
LSteph a écrit :
Bonjour,
C'est vrai aussi pour d'autres versions et cela était déjà connu voir ma réponse dans un autre fil du 15/02 http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/8340667ff469b5b7/66ab09c995ee6f24?lnk=gst&q=lSteph%2Breplace%2B+what%3A%3D%2B%22.%22#66ab09c995ee6f24
toutefois cela n'a rien à voir il me semble avec le pb tel qu'il se présente ici selon ton fichier exemple qui se solutionne simplement sans nécessiter de conversion, par le choix des bons paramêtres régionaux comme l'a souligné Mishell
Cordialement.
-- lSteph
On 21 juil, 10:35, Sylian wrote:
Voici une solution qui peut-être aidera les personnes qui auront connu le même problème que moi.
1 - Il faut déterminer la version d'Excel utilisé 2 - pour 2002-2003, il faut changer les paramètres dans les options d'Excels pour forcer le séparateur décimal de se mettre en virgule et non en point. 3 - pour excel 2007, il faut remplacer le point par ... par un autre point (celui du pavé numérique) et cela a pour effet de tout afficher avec des virgules.
1 ' Teste la version d'Excel 2003 ou 2007 ?
Dim XL2007 as Boolean If Val(Application.Version) >= 11 Then XL2007 = True Else XL2007 = False End If
2 'pour Excel 2002/2003 If XL2007 = False Then Application.DecimalSeparator = "," End If