IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Vérifier/forcer le caractère de séparation décimal


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut Vérifier/forcer le caractère de séparation décimal
    Bonjour à tous,

    Voici mon souci:
    J'ai écris un petit programme qui marche bien depuis un excel "américain", comprenez avec le séparateur décimal en "."

    Quand je le lance sur d'autres pc avec des paramètres régionaux européens, j'ai toujours une erreur qui survient. Il faut alors que je change les paramètres régonaux dans le panneaux de configuration pour régler le séparateur décimal de "," à "."...

    Y a t'il un moyen de forcer ce paramètrage au lancement ou au moins de le vérifier et le cas échéant indiquer un message d'erreur personnalisé.

    Merci d'avance!

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Personne n'a jamais rencontré ce problème de séparateur décimal??

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par primax Voir le message
    Personne n'a jamais rencontré ce problème de séparateur décimal??
    Oh si !
    Regarde , AlainTech propose quelque chose. Ne t'occupe pas des espace, concentre toi sur le format qu'il propose.
    Et si ça ne fonctionne pas, tu nous dis, il existe d'autres méthodes.
    A+

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Concretement, ça veut dire que je dois faire quoi lors du code de chargement de ma worksheet?

    Un truc comme ça?

    NumberFormat = "### ### ##0.0##"

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Oui, tu formates ta/tes colonne(s) selon ce format. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns("C:C").NumberFormat = "### ### ##0.0##"
    Comme je t'ai dit, tu testes...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    J'ai essayé pas mal de chose... Mais c'est un peu du bidouillage...
    Ce que je veux faire concerne tout le document et je voudrais éviter de faire de cas par cas par cellules.

    N'y a t'il donc aucun moyen de paramètrer au lancement du fichier le format des nombre une fois pour toute??

    Merci de votre aide quoi qu'il en soit

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Rebonjour,

    En fait j'ai essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Application
      .DecimalSeparator = "."
      .UseSystemSeparators = False
    End With
    Toute les cellules s'affiche maintenant bien avec des "." mais il y a toujours le même problème de fond:

    Dans mon code vba, j'écris parfois directement des formules contenant des nombres. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .FormulaR1C1 = "=5.3 + 2.9 ...."
    Ces formules génèrent toujours une erreur... Il semblerait finalement que les paramètres régionaux du PC jouent un rôle....

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Essaie avec Formula
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Formula = "=5.3 + 2.9 ...."
    ou avec formulalocal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .FormulaLocal = "=5.3 + 2.9 ...."
    A tout hasard

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Comme souvent, le même problème (ou l'absence de problème ?)

    J'ai Excel 2000. Dans les paramètres régionaux j'ai bien la "," comme séparateur décimal.

    Je tape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub essai()
    Cells(1, 1).Formula = "=5.3 + 2.9"
    End Sub
    Dans la barre de formule, il s'affiche :

    =5,3 + 2,9

    et en "A1" : 8,2

    Là encore une différence de version ?

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Non, j'ai bien la même chose que toi, Excel 97 ou 2003.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Et bien je ne comprends pas...
    Votre excel est-il configuré pour prendre les paramètres du système?

    J'utilise partout "FormulaR1C1" car j'ai besoin de nommer et de faire référence aux colonnes et aux lignes avec un indice chiffré...

    Pour le moment, j'ai simplement fait un test qui informe l'utilisateur et qui le programme si le séparateur décimal du system est ",'

    En attendant mieux...

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour Primax,

    Quel test avez-vous fait ?

    Car à partir du moment où il est défini que l'utilisateur a pour séparateur décimal la "," vous pourriez essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    formul = Replace("=5.3 + 2.9", ".", ",")
     
    FormulaR1C1 = formul
    Dernière modification par AlainTech ; 19/09/2007 à 22h42. Motif: Balises [code]

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Bonjour.

    Le programme est si gros que je n'envsage même pas de faire des corrections au cas par cas comme ceci...

    J'ai fait un test au démarrage du fichier... On va dire que c'est résolu...

    Merci à tous

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 15
    Points : 19
    Points
    19
    Par défaut Changer de séparateur décimal
    [QUOTE=primax;2505707]Bonjour à tous,

    "Y a t'il un moyen de forcer ce paramètrage au lancement ?"

    Bonjour,
    Confronté au même problème j'ai trouvé cette solution :

    Sub DecModifTmp()
    'modifie le séparateur décimal le temps du traitement
    Dim vSep As String
    vSep = Application.DecimalSeparator
    Application.DecimalSeparator = "."
    Application.UseSystemSeparators = False

    Call Traitement

    Application.DecimalSeparator = vSep
    End Sub

    Ca fonctionne bien pour moi.
    Bonne utilisation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/07/2007, 22h26
  2. [VB.NET] Forcer l'affichage de deux décimales pour un nombre double.
    Par annedeblois dans le forum Windows Forms
    Réponses: 9
    Dernier message: 10/11/2006, 14h34
  3. vérifier qu'un caractère est un chiffre
    Par Skeud007 dans le forum Langage
    Réponses: 2
    Dernier message: 01/06/2006, 19h55
  4. [XML]caractère de séparation des contenus des éléments
    Par ep31 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 13/12/2005, 11h07
  5. [C#] Caractère de séparation
    Par borgfabr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/03/2005, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo