Re : Programmation d'un Bouton Toggle
Salu max_31
Pour l'instant, je m'amuse sur tes codes, et plutôt que de pourrir ton code de commentaires, autant les faire ici.
Attention, ce n'est pas ce qu'il faut faire, mais ce que je fais, et pourquoi je le fait
Variables Public :
Je n'utilises des variables globales que quand c'est absolument nécessaire :
- ça prend de la RAM
- elles peuvent être modifiées avoir une valeur autre que celle désirée
- ça peut provoquer des conflits si tu la redéclares, etc.
Je ne m'en sers que quand je dois transmettre une valeur à des procédures qui sont totalement indépendantes
Variables
Je ne suis pas programmeur : je peux rester des semaines sans faire du code.
Mon optique reste toujours la même : reprendre un code longtemps après ne doit pas m'obliger à passer des heures pour retrouver son fonctionnement.
donc, le type, je le mets en entier, et une ligne par déclaration. Et comme ça, je retrouve ma déclaration d'un coup d'oeil et je n'ai pas d'erreur en lisant long au lieu de & et integer au lieu dz %
Mes variables commencent toujours par une majuscule. quand je valides une ligne de code écrite en minuscules, Excel me met la majuscule, s'il la reconnait par ce qu'elle est déclarée. Si elle reste en minuscules, il y a une erreur.
j'utilise le moins possible des variables d'une seule lettre : X, Y, Z sont des compteurs (pour les boucles. Lig, Col ou Cel sont des variables plus explicites, et le temps perdu à taper 3 lettres, bof !
Par contre, quand je sais que mon erreur est sur la variable ligne, une recherche sur Lig est moins ch.... que sur L (fais un essai sur ta variable K pour mieux xomprendre ce que je dis)
Le type de variables :
J'essaie de mettre le type de variable adapté aux valeurs utilisées, mes en tenant compte (si possible) de la valeur maxi que celle-ci peut atteindre :
Les lignes sont toujours déclarées en Long, la valeur max étant 65536 qui dépasse la capacité Integer (32768). À ceux qui pleurent les 2 octets supplémentaires, je demanderais pourquoi ils n'utilisent pas Byte ? 90% des utilisations naviguent dans les 100 lignes/100 colonnes alors ?
Moi, je reste avec mes habitudes : Colonne avec integer (max=256) et ligne avec Long (max=65536). J'ai jamais de plantage pour dépassement de capacité. Moi, je ne vais jamais à la dernière cellule, volontairement, mais si ça arrive, je sais ce que je fais, mais mes (comme disait la chèvre) fichiers sont utilisables par tout le monde. Et depuis que ça m'est arrivé de chercher des heures à reproduire un plantage, pour découvrir que j'avais un espace en ligne 65536, je fais en sorte que ça ne m'arrive plus
EnableEvents
c'est ma hantise : je travailles des fois sur 4 ou plus de classeurs à macro évènements automatiques. et les résultats ne sont pas toujours visibles immédiatement. Si EnableEvents est sur False et que je ne le sais pas...
Donc, je le couple avec ScreenUpdating (voir l'aide) et surtout, je fais une gestion (basique, mais gestion quand même) des erreurs : c'est pas pour faire "PRO", c'est uniquement pour repasser EnableEvents à True
Cells(x,y).value
Je n'utilise Cells qu'avec un compteur de colonne
Cells(Lig,120) est plus difficile à localiser que Range("DP" & Lig)
Value étant la valeur par défaut, je ne la précise jamais, et ça ne peut pas génèrer d'erreur, puisque c'est la valeur par défaut
Je répète (sans odeur) que c'est Ma Vision du code et que chacun est libre de faire ce qu'il veut, mais par expérience, je sasi que mon code est compréhensible par n'importe quel néophyte. Pas le raisonnement, je parle du code, parce que des fois, je me fais des noeuds avec les boyaux de la tête et que quand je vois des #censurés# comme Monique, Bricofire ou d'autres(y en a tellement) qui obtiennent le même résultat (ou mieux) en plus simple et plus concis, ça me rend dingue. Mais je reviendrais et ma vengeance sera terrible
A+