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 :

Utilisation de la casse


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Octobre 2018
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 216
    Points : 30
    Points
    30
    Par défaut Utilisation de la casse
    Bonjour,

    Y-a-t'il un moyen de forcer VBE à tenir de la casse dans la déclaration des variables ?

    J'ai remarqué qu'en écrivant Dim Var, Var sera systématiquement pris en compte partout dans le programme, alors que ce sera var si l'on écrit Dim var... Je trouve que c'est vraiment pénalisant pour la lecture des programmes...

    Merci par avance !

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    En quoi est-ce pénalisant qu'il l'écrive de la même façon que tu l'as déclarée ?
    C'est l'inverse qui serait choquant.
    Si tu n'aimes pas les majuscules déclare-les toutes en minuscules épicétou :-)
    eric

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Octobre 2018
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 216
    Points : 30
    Points
    30
    Par défaut
    Non, mais je souhaite avoir le choix...

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Je ne comprend pas.
    Le choix tu l'as puisqu'il les écrit de la façon qu'elles sont déclarées.
    Ca plane haut dans l'aéronautique ;-)
    Ou alors j'ai mal compris ta question
    eric

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par Orbeaman Voir le message
    J'ai remarqué qu'en écrivant Dim Var, Var sera systématiquement pris en compte partout dans le programme, alors que ce sera var si l'on écrit Dim var... Je trouve que c'est vraiment pénalisant pour la lecture des programmes...
    Citation Envoyé par Orbeaman Voir le message
    Non, mais je souhaite avoir le choix...
    Tu n'as pas le choix, Dim Var est Interdit !
    Var est un mot réservé au langage : WorksheetFunction.Var
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Et si tu veux un langage insensible à la casse et avoir hector, Hector et HECTOR comme trois variables distinctes, oublie VB. (.net, A, 6)

    Tu peux toujours avoir Visual Studio Community (gratuit). Il contient C# qui est Case-Sensitive comme disent les anglais et les faux anglais. Et il peut piloter Excel à distance; même si ce n'est pas vraiment plus efficace que VBA. Et puis il fait des crises quand cela manque de point-virgule.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Octobre 2018
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 216
    Points : 30
    Points
    30
    Par défaut
    OK, merci Clément, comme quoi ce n'était pas si simple à comprendre... Oui, un temps viendra où j'abandonerai le VBA, mais en attendant...

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Octobre 2018
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 216
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Je fais remonter mon post, car je viens de me rendre compte que je pouvais écrire :

    VBA ne remplace pas l'un par l'autre ; normalement Object devrait l'être par object). J'ai l'impression que la casse est déterminée / forcée par ce qui suit Dim. Alors que

    pose problème. Avez-vous une explication ?

    Merci encore !

  9. #9
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Pas forcément, encore que personnellement j'éviterais. Là tu définis une variable que tu appelles object et tu lui donnes le type de donnée Object. Je suppose que cela passe là, parce que se sont deux choses différentes. Cela passe peut-être le test de la vérification de la syntaxe, mais je ne suis pas sûr que cela passerait à la "compilation", l'interprétation, en fait.

    À la base de BASIC. depuis les origines, il y a le concept des mots-clefs, soient tous les noms de fonctions, de type de données et d'instructions liés au langage. (En gros, tous les mots utilisés par le langage.) Et, sauf s'il y a un bug dans le compilateur, tous les noms de variables qui correspondent à un mot-clef sont interdits et rejetés d'emblée.

    Mais là, je crois que tenter cela, c'est aussi tenter le diable.

    P.S. Cela reste à vérifier, mais je crois que Object n'est pas un type de donnée "officiel" en VBA. Dans certains cas, il semble être supporté. Mais BASIC a toujours eu un mécanisme de conversions automatiques d'un type de donnée à un autre. Et je ne suis pas sûr qu'il fait autre chose que juste "convertir" un Object en Variant; le type "passe-partout" par défaut.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  10. #10
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par Orbeaman Voir le message
    Je fais remonter mon post, car je viens de me rendre compte que je pouvais écrire ...
    Il ne faut pas chercher le bâton pour se faire battre !
    C'est pas parce que tu peux l'écrire que c'est autorisé. Dura lex, sed lex !
    La règle est simple : il ne faut pas désigner une variable par un mot réservé au langage !
    Voir point 4 : https://docs.microsoft.com/fr-fr/off...c-naming-rules

    Citation Envoyé par clementmarcotte Voir le message
    Cela passe peut-être le test de la vérification de la syntaxe, mais je ne suis pas sûr que cela passerait à la "compilation", l'interprétation, en fait.
    Malheureusement, le contrôle de syntaxe et le compilateur ne sont pas suffisamment sophistiqués pour rejeter systématiquement l'utilisation de mots réservés au langage lors du nommage des variables.
    Dans le cas cité, string n'est rejeté que parce que, en plus d'être un type de variable, c'est aussi une fonction avec une syntaxe bien définie, ce qui n'est pas le cas de Object.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Octobre 2018
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 216
    Points : 30
    Points
    30
    Par défaut
    Merci pour vos précisions, mais en-dehors des mots clés réservé. Pourquoi écrire Dim object ne force pas Object à object ?

  12. #12
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Re,
    Citation Envoyé par Orbeaman Voir le message
    Merci pour vos précisions, mais en-dehors des mots clés réservé. Pourquoi écrire Dim object ne force pas Object à object ?
    Tout simplement parce qu'il existe une syntaxe à respecter, au même titre qu'on écrit pas 'des mots clés réservé' mais 'des mots clés réservés'.

    Comme l'a écrit Patrick (), lors de la déclaration d'une variable il faut préciser le type. Dans le cas contraire, par défaut de typage, la variable est automatiquement typée Variant.
    C'est comme ça, il est inutile de chercher midi à quatorze heures, il suffit de respecter le langage !
    Tout est dit ici et dans les articles liés :
    https://docs.microsoft.com/fr-fr/off...uage-reference

    PS :
    Tu trouveras plus de détails sur les identifieurs réservés au paragraphe 3.3.5.2 des spécifications du VBA :
    http://interoperability.blob.core.wi...1;MS-VBAL].pdf
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/02/2009, 14h27
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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