Appeler mon ThisWorkbook

Boulgor Messages postés 24 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 4 avril 2013 - 23 avril 2009 à 10:55
Boulgor Messages postés 24 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 4 avril 2013 - 23 avril 2009 à 11:14
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 avril 2009 à 11:01
joues pas avec des .Select inutilement...

Sheets("nom de la feuille").range("c32").value=0
0
Boulgor Messages postés 24 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 4 avril 2013
23 avril 2009 à 11:05
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.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 avril 2009 à 11:12
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
0
Boulgor Messages postés 24 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 4 avril 2013
23 avril 2009 à 11:14
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.
0
Rejoignez-nous