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

Contribuez Discussion :

Influence du séparateur décimal et liste FR/US sur l’enregistreur de macro


Sujet :

Contribuez

  1. #1
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 696
    Points
    6 696
    Par défaut Influence du séparateur décimal et liste FR/US sur l’enregistreur de macro
    Bonjour,

    L'enregistreur de macro n'a pas faux, mais le code ne donne pas le résutat escompté, voici pourquoi...

    issu du fil :http://www.developpez.net/forums/sho...d.php?t=559144

    Twims a créé une validation de données avec l'enregistreur de macro... avec le résultat suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub Macro1()
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="25;75;95"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
    End Sub
    Lorsque je le mets dans mon code, une liste déroulante se crée bien a l'endroit voulu, mais, bizarrement, au lieu d'avoir 3 choix (25 75 95), je n'ai qu'un choix (25;75;95). Encore plus étrange (enfin pour moi...), lorsque j'ouvre le menu Données > Validation et que je clique sur ok dans la boite de dialogue qui s'est ouverte (sans rien toucher aux paramètres), la liste s'affiche correctement (avec les 3 choix l'un en dessous de l'autre).
    Je suis perdu la...
    Solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub ItsOK()
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="25,75,95"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
    End Sub
    où est le problème ?

    tu n'as pas fait d'erreur et l'enregistreur non plus ...

    L'explication vient du fonctionnement des divers séparateurs, le séparateur de listes est lié au choix du séparateur décimal en France la virgule, ce qui nous donne le ";" en liste par défaut. C'est l'inverse aux US..

    Dans Excel, si tu insères des formules par le tableau, elles sont en Français, si tu passes par vba, elles sont en anglais.

    Dans la validation de données, le séparateur de liste du tableau est le ";" mais en vba, c'est la ","
    Donc quand tu utilises l'enregistreur, il fonctionne bien, mais basiquement sans opérer la conversion
    Ton code est donc faux en vba, mais il est inscrit (mémorisé) dans le tableau comme tel où il est correct, donc quand tu repasses par le menu déroulant, tu revalides ta liste avec les ; et ça marche car c'est du coup la bonne syntaxe pour le contexte de la feuille.

    (dans le même genre d'idée, si dans une cellule excel tu tapes 12 "point" 5 avec le pavé numérique tu obtiens 12,5 alors que si tu tapes 12 "point" 5 avec le clavier tu as 12.5 - les 2 "point" sont interprétés différemment et logiquement sans que ça choque personne.. sauf qu'en vba si tu veux 12,5 en F15, il faudra entrer en code
    Code :
    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

  2. #2
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 696
    Points
    6 696
    Par défaut
    Bonsoir,

    Précision : le sujet traite du comportement de la validation de données via l'enregistreur de macros et est indépendant des versions d'Excel, mais je ne saurais dire ce qu'il en était du temps où les macros étaient en Français

    http://support.microsoft.com/kb/465760/fr

    cordialement,

    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

Discussions similaires

  1. [ASIQ]Séparateur décimal
    Par ALLB dans le forum Sybase
    Réponses: 5
    Dernier message: 15/02/2006, 08h34
  2. [C#] Comment modifier le séparateur décimal ?
    Par vincent.e dans le forum C#
    Réponses: 5
    Dernier message: 12/01/2006, 23h07
  3. séparateur décimal
    Par sjprm dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/12/2005, 16h33
  4. séparateur décimale
    Par robris dans le forum Oracle
    Réponses: 4
    Dernier message: 20/10/2005, 11h09
  5. [CR8.5][Oracle8] Séparateur décimal ignoré
    Par chrilie73 dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 06/06/2005, 18h31

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