Worksheet_activate erreur

Résolu/Fermé
campagnie Messages postés 11 Date d'inscription mardi 26 avril 2016 Statut Membre Dernière intervention 16 février 2017 - 5 juin 2016 à 13:31
campagnie Messages postés 11 Date d'inscription mardi 26 avril 2016 Statut Membre Dernière intervention 16 février 2017 - 5 juin 2016 à 16:40
Bonjour,

Je me permets de faire appel à vous car je ne trouve pas l'erreur dans ma macro :

Private Sub Worksheet_Activate()
Call BonjourVous
End Sub

Or j'ai le message d'erreur suivant :
Compil error:
Sub or Function not defined

Pourtant j'ai bien créé une macro nommé BonjourVous dont le contenu est :
Sub BonjourVous()
MsgBox ("Bonjour Bonne lecture.")
End Sub

Quelqu'un pourrait-il m'expliquer ce qui m'échappe?

Cordialement

1 réponse

Utilisateur anonyme
5 juin 2016 à 15:32
Bonjour campagnie,

Dans ta sub BonjourVous(), les parenthèses de ton instruction
MsgBox sont inutiles :

Sub BonjourVous() 
  MsgBox "Bonjour Bonne lecture."
End Sub


-----------------------------------------

Dans ta sub Worksheet_Activate(), le Call est inutile car c'est
la seule instruction de la ligne. Tu peux donc écrire :

  BonjourVous


Par contre, s'il y avait sur la même ligne une 2ème instruction à la suite,
et donc un deux-points ( : ) pour les séparer, là, le Call aurait été
obligatoire, car sinon, BonjourVous: aurait été pris comme une étiquette
(où se brancher éventuellement). Et tout ça ne concerne que les subs
sans paramètre ; car avec un ou plusieurs paramètres, pas besoin de
Call : ça ne peut pas être pris comme une étiquette (aucune ambiguïté
possible).

-----------------------------------------

Enfin, l'emplacement pour écrire ton code est mal choisi.
Voici ce que je te propose :

Côté gauche de ta fenêtre Microsoft Visual Basic, fais un clic droit sur
la ligne de ton Projet VBA, et choisis Insertion / Module (tout court,
pas Module de classe !) : tu vas avoir une page blanche qui est celle
de Module1 ; c'est là que tu dois écrire ton code VBA (sauf pour des
procédures de type événementiel, mais ce n'est pas ton cas).

Donc mets ici par copier / coller la sub BonjourVous corrigée qui est
ci-dessus, et supprime tout ce que tu avais déjà mis avant :
ton ancienne sub BonjourVous() et la sub Worksheet_Activate()
qui sont dans le code de Feuil1.

Ensuite, fais < Alt >< F11 > pour retourner sur ta feuille Excel,
et fais < Alt >< F8 > pour avoir la fenêtre « Macros ».

Sélectionne ta sub BonjourVous, puis exécutes-là :

Ton message va s'afficher dans une boîte de dialogue avec
le bouton OK.

Dis-moi ce que tu en penses, et si ton problème est réglé,
merci d'utiliser le lien situé tout en haut de page, juste
sous le titre : « Marquer comme résolu ».

Cordialement.  😊
 
0
campagnie Messages postés 11 Date d'inscription mardi 26 avril 2016 Statut Membre Dernière intervention 16 février 2017
5 juin 2016 à 16:40
C'est parfait merci!
0