Question bonnes pratiques du codage...? Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
atlonia
Membre fidèle
Membre fidèle
Messages : 427
Inscrit le : 10 mai 2017
Version d'Excel : 2007 FR

Message par atlonia » 12 août 2018, 13:24

Bonjour à tous,

On peut renommer les objets en VBA...

Certains sites le conseille et même le recommande, d'autres pas... :rond:

Quelqu'un peut-il me dire les avantages ou les inconvénients à le faire ?

Car j'avoue que j'ai bien du mal à me faire une idée... :??

auriez vous la gentillesse de m'éclairer à ce sujet ?

Merci aux âmes de bonne volonté... :sp:
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'201
Appréciations reçues : 444
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 12 août 2018, 14:14

Bonjour,

Les objets en général c'est un peu vague ! :wink: On manipule principalement 2 sortes d'objet avec VBA : les objets Excel, auxquels tu donnes naturellement des noms, sans même y penser spécialement, noms de classeurs, noms de feuille, etc. et il n'y a pas de raisons de ne pas leur en donner de façon à s'y retrouver plus facilement parmi eux. Moins évident en ce qui concerne les formes, parce que beaucoup d'utilisateurs ne savent pas où ils peuvent modifier le nom générique mis par Excel (c'est tout simplement dans la zone Nom, et il convient de valider le nouveau nom par la touche Entrée pour qu'il soit pris en compte). Bien usité en ce qui concerne les noms de plage dont l'utilité n'est plus à démontrer (je conseillerais toutefois de ne pas les multiplier à l'infini, car on ne fait alors qu'en compliquer la gestion, un nom judicieusement placé permet d'atteindre n'importe quelle plage ou cellule d'une feuille et l'on peut souvent s'en contenter...)

Et en second lieu, les contrôles de Userforms, auxquels il me semble que vont tes pensées ! D'abord ce sont des objets comme les autres, qu'on utilise, et je ne vois aucune raison de ne pas leur donner de nom reflétant leur utilisation particulière, qui permettra à l'utilisateur de s'y retrouver spontanément, sans avoir à réfléchir à qui est qui ? à chaque fois... Autant que je sache, c'est généralement conseillé et j'avoue ignorer les arguments de ceux qui éventuellement le déconseilleraient.
Il est d'usage fréquent d'utiliser un préfixe indiquant la nature du contrôle, c'est certainement utile, mais il est aussi utile de pouvoir utiliser ces contrôles en boucles, d'où un renommage permettant cette utilisation... Quand il peut y avoir contradiction entre ces deux types d'exigences, je n'hésite pas à déroger à la première pour confondre par exemple des ComboBox et des TextBox avec un même nom générique pour les utiliser dans une même boucle...
Ceci étant on dispose aussi d'autres choix alternatifs (utilisation de TypeOf, de la propriété Tag, etc.) et donc les choix finaux résulteront de la conception d'ensemble qu'on privilégiera, de compromis divers, de préférences... A chacun de voir la situation qui lui convient le mieux à un moment donné.

Je dirais donc en la matière :
1) OUI, c'est conseillé de renommer,
2) Il est bon de prendre en considération certaines règles de renommage communément admises,
3) Et de ne pas hésiter à s'en affranchir si on le trouve plus judicieux !

Cordialement.
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'689
Appréciations reçues : 647
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 12 août 2018, 14:26

Bonjour,
c'est très bien, MFerrand,  ta longue description est vraiment parfaite !  :sp: :appl2:  la seule chose que je peux ajouter, c'est que pour renommer un objet, c'est pas obligatoire d'en faire la déclaration à l'État Civil.  :P  :lol:

dhany
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'201
Appréciations reçues : 444
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 12 août 2018, 14:32

c'est pas obligatoire d'en faire la déclaration à l'État Civil.
Euh ! Non ! Tu peux le faire en catimini, ou sous le manteau... :lole:
Avatar du membre
atlonia
Membre fidèle
Membre fidèle
Messages : 427
Inscrit le : 10 mai 2017
Version d'Excel : 2007 FR

Message par atlonia » 13 août 2018, 09:43

Bonjour MFerrand et dhany,

Merci MFerrand pour cette explication magistrale qui décortique bien le sujet... (10/10)

En posant ma question, je pensais effectivement au renommage des UserForms et des différents contrôles qu'ils peuvent contenir; tu as visés juste.

Cela conforte ce que je pensais et je vais donc continuer à utiliser des noms personnalisés et préfixés conformes aux conventions typographiques , car je trouve ça très pratique.

Pour ceux que ça interresse: Descriptif des conventions typographiques du code Visual Basic
https://argyronet.developpez.com/office/vba/convention/

Merci encore et toujours pour la justesse des tes propos... :sp:



Merci à toi également dhany pour ton trait d'humour... :lol:
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'659
Appréciations reçues : 249
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 13 août 2018, 10:15

bonjour à tous

nommer, ce n'est pas propre à VBA ni à tout autre langage.

sur Excel, on conseille* AUSSI de nommer les cellules qui ont une signification particulière et qu'on utilise dans plusieurs endroits, les Tableaux, les TCD, les feuilles, et toutes autres sortes d'entitées.

c'est donc bien une règle universelle
valable dans toute l'informatique, comme pour les gens et les voitures :mrgreen:

* moi, si on fait des fichiers durables, j'exige de nommer au maximum
car dans 6 mois...
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
Avatar du membre
Ausecour
Passionné d'Excel
Passionné d'Excel
Messages : 3'125
Appréciations reçues : 345
Inscrit le : 31 mai 2018
Version d'Excel : 2010 FR, 2013 FR

Message par Ausecour » 13 août 2018, 10:16

Bonjour à tous :)

Au passage pour apporter un peu de code dans cette discussion,
tu peux totalement t'affranchir du nom pour gérer le type du contrôle, tu peux utiliser la fonction typename() qui prend un contrôle en argument.

Je recommande tout de même de renommer les contrôles en gardant ComboBox devant par exemple, c'est vrai que c'est plus pratique ensuite quand tu codes pour pouvoir savoir qu'est ce que tu manipules.
Plus un sujet a un titre précis, des explications claires, et un fichier Excel bien préparé, plus il a de chances d'avoir une réponse qui répond au besoin, mettez toutes les chances de votre côté :bien:
"100% des gagnants auront tenté leur chance" :trfl:
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'659
Appréciations reçues : 249
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 13 août 2018, 10:38

bonne remarque !

TCD_Banque signifie le TCD avec les bilans par banques
TAB_Frais le Tableau des frais

il doit y avoir des tutos de recommandations sur le net...
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
Avatar du membre
Ausecour
Passionné d'Excel
Passionné d'Excel
Messages : 3'125
Appréciations reçues : 345
Inscrit le : 31 mai 2018
Version d'Excel : 2010 FR, 2013 FR

Message par Ausecour » 13 août 2018, 10:43

Ou encore TextBox_jour pour stocker le jour, TextBox_mois, TextBox_annee, enfin ça c'est si on veut une textbox pour chacun des champs bien sûr, on peut aussi faire une simple TexBox_date aussi, en tout cas c'est toujours plus pratique de savoir si ta TextBox que tu vas peut-être vouloir tester par la suite contient bien un mois entre 1 et 12, moins facile à comprendre avec TextBox1, TextBox2, TextBox3 ...

Bien nommer ses variables et ses objets c'est toujours important pour rendre son code lisible.

Dans les autres bonnes pratiques de la programmation il y a aussi le fait de mettre des tabulations à chaque entrée dans un With, For, If, Do... Ainsi que les commentaires qui sont très importants, il est possible parfois de revenir sur un programme après 2 semaines et ce n'est pas toujours évident de s'y retrouver sans commentaires, et c'est également mieux si quelqu'un passe derrière toi et cherche à comprendre la logique de ton code :)
Plus un sujet a un titre précis, des explications claires, et un fichier Excel bien préparé, plus il a de chances d'avoir une réponse qui répond au besoin, mettez toutes les chances de votre côté :bien:
"100% des gagnants auront tenté leur chance" :trfl:
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'659
Appréciations reçues : 249
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 13 août 2018, 10:49

on ne parle jamais de Visual Studio ???

https://docs.microsoft.com/fr-fr/visual ... o-compared
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message