Se connecter avec
S'enregistrer | Connectez-vous

Soucis pour un évènement "click" sous VBA.

Dernière réponse : dans Programmation

Bonjour,
Je suis débutante en programmation, désolée de mon manque de vocabulaire.
Je dois créer un évènement, lorsque je clique sur le "Button" ça doit effacer toute une matrice .
L'énoncé exact:
"Créer un bouton "initialiser" dans la feuille "facture" avec les caractéristiques suivantes:
- Propriété Label de l'élément: "initialiser"
- Evènement: Click()
- Rôle: vide la facture de son contenu.

J'éspère avoir été assez claire... Merci beaucoup de votre aide!

Autres pages sur : soucis evenement click vba

Lassé par la pub ? Créez un compte
Expert Programmation

salut PolineC,

On ne fais pas de devoirs sur commande sur ce forum (voir réglement).

Par contre on peut tout a fait t'aider mais il faut pour cela que tu ais premierement qqch a proposer.

Aussi, j'ai hate de voir ton premier bout de code...

(as tu l'onglet "developper" dans ton ruban excel ?)

Loin de moi l'idée d'avoir la réponse toute faite!
Justement, ce qui me plait en informatique c'est quand d'une piste on trouve une idée... qui certes ne marchera peut-être pas mais qui en engrangera un autre et une autre jusqu'à la bonne!
Sauf que là, bon, les test ... 1heure dessus, pour un code soi disant pas compliqué.
On avait déjà fait de la programmation avant donc j'ai bien l'onglet développeur sur excel.

Mon prof nous a donné une correction à laquelle j'ai rien compris, alors que moi ça marchait avec un truc que j'ai fini par trouver seule:

Private Sub Initialiser_Click()

Sheets("Facture").Range("A23:G25").Select
Selection.ClearContents

End Sub

Alors finalement, pourrais-je avoir votre avis?

Parceque dans l'algo de mon prof, il y avait une ligne par case à initialiser!
On peut m'expliquer?
Merci Beacoup!
Expert Programmation

Salut PolineC,

Je vais te répondre a partir du code que tu poste :
  1. Sheets("Facture" ).Range("A23:G25" ).Select
  2. Selection.ClearContents
peut aussi s'écrire :
  1. Sheets("Facture" ).Range("A23:G25" ).ClearContents


ensuite, si on veut pinailler, le mieux serait de définir une variable pour le classeur (je ne sais pas si tu as plusieurs feuille ou classeurs ouvert en meme temps lors du lancement de la macro, mais c'est plus prudent.
ton code deviens :

  1. Dim ws_facture as Worksheet
  2.  
  3. set ws_facture = worksheets("facture")
  4.  
  5. ws_facture.Range("A23:G25").Clearcontents


Et ce code est amplement suffisant.

Pour t'expliquer un code il nous faudrait le voir (post sur le Forum).

Il est possible que ton professeur passe par une boucle pour vider ta facture. (Ta facture est statique ? sinon, ton code ne fonctionne pas puisqu'il ne prend en compte qu'une plage fixe (A23:G25) pour l'effacement.)

Citation :
Parceque dans l'algo de mon prof, il y avait une ligne par case à initialiser!


je ne comprends pas ce que tu entends par ligne a initialiser aux vues du code que tu propose.
Lassé par la pub ? Créez un compte