Appeler mon ThisWorkbook

Signaler
Messages postés
24
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
4 avril 2013
-
Messages postés
24
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
4 avril 2013
-
Salut à tous!
Alors je vais essayé de vous expliquer mon problème tout simplement; je tiens à signaler que je suis un pur débutant, et que j'entrave pas grand chose au langage informatique donc essayé de me répondre le plus simplement et d'éviter les phrases intordables :p.

Alors, je voudrais créer un bouton, qui quand je clique dessus, efface des cellules inscrites dans le code. J'écris le code suivant:

Private Sub CommandButton5_Click()

       Sheets("nom de la feuille").Select

        range("c32").value=0

End Sub

Je me met dans le mode développeur (office 2007) puis, en double cliquant sur le bouton de commande que je souhaite, je rentre le code ci dessus. Il m'amène bien à la feuille sélectionnant, mais ne change pas la valeur de la cellule.
Par pure curiosité, je saisie un code identique sur le ThisWorkbook et là, si je reste sous le mode VBA et que je fais tourner, sa fonctionne.

Donc, si qq1 peut me dire pourquoi il marche sous le thisworkbook et pourquoi il ne marche pas sous une feuille normale?
Ensuite, comment modifier mon code sur la feuille pour qu'il marche directement ou si cela n'est pas possible, comment appeler le Thisworkbook en cliquant sur la bouton d'action situé sur la feuille?

Merci d'avance en espèrant avoir été assez clair.

4 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
joues pas avec des .Select inutilement...

Sheets("nom de la feuille").range("c32").value=0
Messages postés
24
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
4 avril 2013

Ben merci sa fonctionne à merveille.
Ne joues pas avec les trois petits points inutilement, comme dis au dessus je n'y connais rien et dire le pourquoi du comment, ou même ne rien dire du tout est surement plus judicieux que "...".

Merci en tout cas.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
cherches pas, j'en colle partout, des ...

y'a pas de phrases cachées, etc.

outre le fait que le .select force Excel a afficher la chose, c'est moins précis de jouer sur la selection.

si tu souhaites cibler une feuille ou une plage en particulier, inutile de passer par des intermédiaires.

c'est une chose qu'on voit trpo souvent dans les macros... c'est pas un bien.

dans ton cas, le Range qui trainait seul était dans la ActiveSheet et non dans la feuille selectionnée

tu aurait pu faire (pour test, pas idéal)

Sheets("nom de la feuille").Activate
range("c32").value=0

ou

Sheets("nom de la feuille").Select
Selection.range("c32").value=0
Messages postés
24
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
4 avril 2013

Haha oki.
Je comprend le truc, merci beaucoup pour tes explications pour le coup.
Et je t'assure j'en mettrai le moins possible à l'avenir :p.

Allez merci encore, plus plus.