Je rencontre quelques probl=E8mes de format des donn=E9es=20
num=E9riques que je saisie dans mes fen=EAtre VBA qui se=20
retranscrivent dans excel dans un format diff=E9rent.
Par exemple je suis en format ### ##,00 en VBA et la=20
retranscription sur excel s'apparente =E0 du texte m=EAme si=20
les cellules concern=E9es sont en format num=E9rique.
Cela ne se produisait pas quand mes param=E8tres r=E9gionaux=20
d'ordinateur =E9tait en mode"." pour les d=E9cimales, mais=20
depuis que je suis en mode "," (car d'autres applications=20
ne fonctionne qu'avec ce mode ",") le probl=E8me appara=EEt.
D'une mani=E8re plus g=E9n=E9rale, j'aurais souhait=E9 pouvoir=20
param=E9trer l'ordinateur depuis VBA, ce qui permettrait de=20
changer les param=E8tres =E0 l'ouverture du programme et de=20
les restaurer =E0 sa fermeture.
Merci =E0 tous de votre aide pour cette question =E9pineuse
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
Michel Gaboly
Bonjour,
VBA est en anglais pour toutes les versions*. C'est pareil pour les formats : le séparateur décimal à utiliser dans le code VBA est nécessairement le point, indépendamment des paramètres de ta machine.
Par contre, en cas de saisie dans un UserForm (avec un TextBox par exemple), pour que le contenu soit reconnu comme numérique, il faut utiliser comme séparateur (point ou virgule) qui correspond aux paramètres de la machine.
Tu peux facilement traiter ce second point avec une procé- dure événementielle qui remplace le point ET la virgule par le bon séparateur :
Application.International(xlDecimalSeparator)
Pour le remplacement, il faut utiliser
Application.WorksheetFunction.Substitute
si VBA repose sur une version 5 de Visual Basic (Excel 97 sur PC, Excel 98, 2001 et X sur Mac)
ou la fonction Replace si VBA repose sur une version 6 de Visual Basic (Excel 2000 ou plus récent, sur PC seulement)
* Sauf Excel 5 et 95 qui offrent des dialectes locaux
Bonjour à tous,
Je rencontre quelques problèmes de format des données numériques que je saisie dans mes fenêtre VBA qui se retranscrivent dans excel dans un format différent.
Par exemple je suis en format ### ##,00 en VBA et la retranscription sur excel s'apparente à du texte même si les cellules concernées sont en format numérique.
Cela ne se produisait pas quand mes paramètres régionaux d'ordinateur était en mode"." pour les décimales, mais depuis que je suis en mode "," (car d'autres applications ne fonctionne qu'avec ce mode ",") le problème apparaît.
D'une manière plus générale, j'aurais souhaité pouvoir paramétrer l'ordinateur depuis VBA, ce qui permettrait de changer les paramètres à l'ouverture du programme et de les restaurer à sa fermeture.
Merci à tous de votre aide pour cette question épineuse
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonjour,
VBA est en anglais pour toutes les versions*. C'est pareil
pour les formats : le séparateur décimal à utiliser dans le
code VBA est nécessairement le point, indépendamment des
paramètres de ta machine.
Par contre, en cas de saisie dans un UserForm (avec un
TextBox par exemple), pour que le contenu soit reconnu
comme numérique, il faut utiliser comme séparateur
(point ou virgule) qui correspond aux paramètres de la
machine.
Tu peux facilement traiter ce second point avec une procé-
dure événementielle qui remplace le point ET la virgule
par le bon séparateur :
Application.International(xlDecimalSeparator)
Pour le remplacement, il faut utiliser
Application.WorksheetFunction.Substitute
si VBA repose sur une version 5 de Visual Basic (Excel 97
sur PC, Excel 98, 2001 et X sur Mac)
ou la fonction Replace si VBA repose sur une version 6 de
Visual Basic (Excel 2000 ou plus récent, sur PC seulement)
* Sauf Excel 5 et 95 qui offrent des dialectes locaux
Bonjour à tous,
Je rencontre quelques problèmes de format des données
numériques que je saisie dans mes fenêtre VBA qui se
retranscrivent dans excel dans un format différent.
Par exemple je suis en format ### ##,00 en VBA et la
retranscription sur excel s'apparente à du texte même si
les cellules concernées sont en format numérique.
Cela ne se produisait pas quand mes paramètres régionaux
d'ordinateur était en mode"." pour les décimales, mais
depuis que je suis en mode "," (car d'autres applications
ne fonctionne qu'avec ce mode ",") le problème apparaît.
D'une manière plus générale, j'aurais souhaité pouvoir
paramétrer l'ordinateur depuis VBA, ce qui permettrait de
changer les paramètres à l'ouverture du programme et de
les restaurer à sa fermeture.
Merci à tous de votre aide pour cette question épineuse
VBA est en anglais pour toutes les versions*. C'est pareil pour les formats : le séparateur décimal à utiliser dans le code VBA est nécessairement le point, indépendamment des paramètres de ta machine.
Par contre, en cas de saisie dans un UserForm (avec un TextBox par exemple), pour que le contenu soit reconnu comme numérique, il faut utiliser comme séparateur (point ou virgule) qui correspond aux paramètres de la machine.
Tu peux facilement traiter ce second point avec une procé- dure événementielle qui remplace le point ET la virgule par le bon séparateur :
Application.International(xlDecimalSeparator)
Pour le remplacement, il faut utiliser
Application.WorksheetFunction.Substitute
si VBA repose sur une version 5 de Visual Basic (Excel 97 sur PC, Excel 98, 2001 et X sur Mac)
ou la fonction Replace si VBA repose sur une version 6 de Visual Basic (Excel 2000 ou plus récent, sur PC seulement)
* Sauf Excel 5 et 95 qui offrent des dialectes locaux
Bonjour à tous,
Je rencontre quelques problèmes de format des données numériques que je saisie dans mes fenêtre VBA qui se retranscrivent dans excel dans un format différent.
Par exemple je suis en format ### ##,00 en VBA et la retranscription sur excel s'apparente à du texte même si les cellules concernées sont en format numérique.
Cela ne se produisait pas quand mes paramètres régionaux d'ordinateur était en mode"." pour les décimales, mais depuis que je suis en mode "," (car d'autres applications ne fonctionne qu'avec ce mode ",") le problème apparaît.
D'une manière plus générale, j'aurais souhaité pouvoir paramétrer l'ordinateur depuis VBA, ce qui permettrait de changer les paramètres à l'ouverture du programme et de les restaurer à sa fermeture.
Merci à tous de votre aide pour cette question épineuse