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 :

propriété par défaut


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut propriété par défaut
    bonjour,

    Je vois souvent sur le forum des codes dans lesquels les propriétées des objets (controls ,cells,etc) ne sont pas nommées (propriété par défaut).

    Certain developpeurs estiment que l implementation est plus propre , cependant il ne me semble pas que tous les objets renvoie une propriété par défaut, ce qui peut en ometant ces propriété génerer des erreurs de compilation.

    Existe t il une liste ou un site pour voir les propriété par défaut des objets
    A part l aide en ligne bien sûr.

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    un seul conseil, ne serait-ce que pour faciliter la tâche de VB et celle de celui qui assurerait la maintenance de l'application : toujours spécifier la propriété à utiliser...

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour,

    un seul conseil, ne serait-ce que pour faciliter la tâche de VB et celle de celui qui assurerait la maintenance de l'application : toujours spécifier la propriété à utiliser...
    +1, même si je le fais rarement dans mes réponses sur le forum...

    [EDIT]
    Illustration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        Dim a As Variant
     
        a = Range("a1")
        Set a = Range("a1")
    Les deux parties à droite du signe "=" sont identiques, pourtant celle de la première ligne renvoie la valeur de la cellule, et celle de la deuxième renvoie la cellule elle-même (objet Range). Même si le code présenté ici n'est pas optimal (utilisation de As Variant au lieu de As Range sur la deuxième ligne), il illustre la confusion possible lorsque l'on utilise la propriété par défaut.

    L'avantage supplémentaire d'utiliser les propriétés à tous les coups est que la lecture et la compréhension sont plus aisées pour une autre personne qui ne connaitrait pas les propriétés par défaut.
    [/EDIT]
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre chevronné
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Par défaut
    Bonjour,

    Cette fois, nous n’avons pas le même avis

    Je trouve au contraire superflu l’indication explicite de la propriété par défaut .Value, pour des objets comme Range, TextBox, ListBox ou Combo.

    Il existe quelques circonstances particulières où c’est nécessaire. Dans tous les autres cas, je trouve le code plus agréable à lire quand les .Value sont omis.

    De même modifier le texte apparaissant sur un objet Label, .Caption ne me semble nullement nécessaire.

    Je ne trouve justifié de toujours indiquer explicitement la propriété par défaut que pour les objets qu’on utilise peu fréquemment, et que donc l’on connaît moins bien.

    Cordialement,


    Citation Envoyé par ucfoutu Voir le message
    Un seul conseil : toujours spécifier la propriété à utiliser...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pour connaitre les valeurs par défaut il faut regarder dans l'explorateur d'objets (F2 dans l'éditeur VBE), ce sont celles qui ont un point bleu.

    Bigalo Je suis de l'avis de Pierre Fauconnier, systématiquement je mets toutes les propriétés par défaut, et je ne trouves pas que cela alourdi le code, mais les choses sont plus précises, et on sait de quoi on parle.

    Starec

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    En effet, Starec...

    Mais également : en omettant de préciser d'emblée la valeur, on force VB a aller rechercher lui-même (en fonction du contrôle) celle qui est à appliquer par défaut. Il est vrai que ce temps n'est perdu qu'à la compilation, sous VB6...
    Mais la compilation se fait, sous VBA, à chaque exécution ...

  7. #7
    Membre chevronné
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Par défaut
    Re,

    Je suis près à parier que la différence en temps d’exécution est inférieure à 1 %.

    Par ailleurs, je vous rappelle que je suis sur Mac, où IntelliSense n’existe pas. Tous les caractères doivent donc être entrés à la main.

    L’indication explicite de la propriété par défaut représente un surcroît de rigueur, ce qui est une bonne chose, et avec certains langages c’est probablement fondamental. D’après mon expérience perso, cela ne l’est pas en VBA.

    Citation Envoyé par ucfoutu Voir le message
    Mais la compilation se fait, sous VBA, à chaque exécution ...

    Citation Envoyé par Starec Voir le message
    Pour connaitre les valeurs par défaut il faut regarder dans l'explorateur d'objets, ce sont celles qui ont un point bleu.
    Je n’ai jamais vu ce point bleu dans l’explorateur de fichiers

    Je mets toutes les propriétés par défaut, et je ne trouve pas que cela alourdi le code, mais les choses sont plus précises, et on sait de quoi on parle.
    Question de point de vue, ou simplement d’habitudes personnelles. Je trouve déjà VBA trop verbeux. .Value ne me paraît pas nécessaire pour savoir de quoi on parle, c’est suffisamment évident sans.

  8. #8
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Citation Envoyé par Bigalo Voir le message
    Cette fois, nous n’avons pas le même avis

    <<SNIP>>

    Je ne trouve justifié de toujours indiquer explicitement la propriété par défaut que pour les objets qu’on utilise peu fréquemment, et que donc l’on connaît moins bien.
    Je ne partage pas non plus ton point de vue, mais tends plutôt à me joindre à ucfoutu et Pierre Fauconnier et Starec à ce niveau.
    Ne serait-ce que pour un point, issu de ta propre remarque :
    Et le jour où TON code est lu par un NOVICE ?
    Lui, il ne les connait sûrement pas les propriétés par défaut.
    En agissant ainsi, tu ne te préoccupe donc que de l'instant présent dans la vie de ton code, et pas de sa pérennité au-delà de toi-même.
    C'est dommage je trouve

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    Pour connaitre les valeurs par défaut il faut regarder dans l'explorateur d'objets (F2 dans l'éditeur VBE), ce sont celles qui ont un point bleu.
    pour le voir , créer un userform puis ouvrir l explorateur d objet (msforms)
    et la les propriété par defaut sont "surligné " d un point bleu.

    attention : tous les objets n ont pas forcement de propriété par défaut

  10. #10
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 121
    Par défaut
    SAlut
    Pour ma part je pense que VBA est tres flexible dans son utilisation en general, il offre c'est vrai la possibilité de ne pas marquer .Value par exemple. Mais perso je trouve que se manque de rigueur peu se payer, tout comme le faite de faire des transtypage implicite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim Str As String
     
    Str = 1
    J'ai commencer la programation avec VB4 et bien sur je ne faisait jamais de transtypage Str = CInt(1) (ok mon exemple est con...mais bon) et il m'est arrivé plusieur fois de le payer et de chercher l'erreur...
    Depuis je suis passé sous Delphi, et la .... ben la rigueur n'est plus la meme du tout et je trouve au final que, comme dis plus haut, le faite d'avoir un code plus rigoureux aide beaucoup a la comprehension de celui ci, audela meme de toute recherche de performance.
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  11. #11
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Par défaut
    bonjour,

    dans le même ordre d'idée, lorsqu'une méthode comporte plusieurs arguments optionnels préférez-vous écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    X = Classe.Methode ( , , ,1)
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    X = Classe.Methode (Arg4:=1)
    Merci,

    Philippe

  12. #12
    Membre chevronné
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Par défaut
    Maxence,

    Citation Envoyé par Maxence HUBICHE Voir le message
    En agissant ainsi, tu ne te préoccupe donc que de l'instant présent dans la vie de ton code, et pas de sa pérennité au-delà de toi-même.
    C'est dommage je trouve
    J’ai cité principalement 4 objets, Range, TextBox, ListBox et ComboBox, pour lesquels, à de rares exceptions près, il me paraît superflu d’écrire .Value

    J’ai du mal à croire que cela puisse poser un problème à quelqu’un qui devrait prendre la suite sur un de mes développements, non ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/08/2009, 15h45
  2. Propriété par défaut, oui mais
    Par peter27x dans le forum Débuter
    Réponses: 2
    Dernier message: 13/02/2009, 11h07
  3. Réponses: 10
    Dernier message: 05/11/2007, 15h46
  4. [VB.net] Propriété par défaut d'un textbox
    Par razikos18 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/06/2006, 15h34
  5. Réponses: 9
    Dernier message: 13/06/2005, 17h56

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