Défi: MS Excel VBA Programming for the Absolute Beginner

J'apprends VBA en utilisant une combinaison de VBA For Dummies et le livre mentionné ci-dessus. Le dernier, présente un défi simple (Défi 2, chapitre 2) auquel j'aimerais vous poser quelques remarques.

Le défi est le suivant:

Placez un contrôle de button de command sur une feuille de calcul et écrivez un programme dans la procédure d'événement Click () qui augmente une variable par 5 à chaque clic de la souris. Sortez la valeur de cette variable dans une boîte de message.

J'ai rassemblé l'extrait de code suivant en réponse:

Sub CommandButton1_Click() Dim AddClick As Integer AddClick = Range("A1").Value AddClick = AddClick + 5 Range("A1").Value = AddClick MsgBox AddClick End Sub 

Bien que le code fonctionne, je suis bien sûr qu'il existe un moyen d'éliminer l'utilisation de 'Range ("A1"). Valeur' ​​pour baser la variable 'AddClick' sur. Comment pourrais-je faire cela?

* Mise à jour: Grâce à la suggestion de Cody Gray (http://articles.techrepublic.com.com/5100-10878_11-5854605.html), j'ai révisé le code à la suite – qui fonctionne maintenant très bien (édité pour plus d'informations sur la simplicité ): *

 Sub CommandButton1_Click() Static AddClick As Integer AddClick = AddClick + 5 MsgBox AddClick End Sub 

Simples. Merci encore Cody.

Les deux échantillons précédents sont faux je pense. La version correcte est la suivante:

 Sub CommandButton1_Click() Static AddClick As Integer AddClick = AddClick + 5 MsgBox AddClick End Sub 

Définissez la variable au niveau du module.
Cela augmentera la scope de la variable de la procédure au module.

Remplacez le code existant par celui-ci.

 Option Explicit Dim AddClick As Integer Sub CommandButton1_Click() AddClick = 0 AddClick = AddClick + 5 MsgBox (AddClick) End Sub 

Remarque: La définition de la variable au niveau de la procédure limitera sa durée de vie.
c'est-à-dire que la variable ne sera pas accessible en dehors du cadre de la procédure.