[déplacé VB.NET -> VBA] CommandButton pour lancer macro

Signaler
Messages postés
2
Date d'inscription
dimanche 14 mars 2010
Statut
Membre
Dernière intervention
24 mars 2010
-
Messages postés
2
Date d'inscription
dimanche 14 mars 2010
Statut
Membre
Dernière intervention
24 mars 2010
-
J'ai un fichier Excel (Excel 2003) formé de plusieurs feuilles. J'ai écrit une macro qui copie automatiquement sur plusieurs autres feuilles des informations de la première feuille. Cette macro marche sans problème. Je voudrais qu'elle soit exécutée seulement en cliquant quelque part sur la première feuille et non pas en demandant l'exécution de la macro. J'ai essayé en utilisant CommandButton. Mais quand j'insère ma macro dans celle de CommandButton, cela ne marche pas. Il ne se passe rien ou bien j'ai une erreur selon ce que j'ai laissé ou enlevé dans ma macro. Qui saurait pourquoi ? Ou comment je dois procéder pour obtenir ce que je voudrais ? Merci d'avance.

2 réponses

Messages postés
303
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
3 octobre 2013
1
Bonjour

Je ne peut répondre sans avoir connaissance du message d'erreur exact.
une piste :

la macro doit être enregistrée dans la feuille où est le bouton.
On l'affecte au bouton en faisant un clique droit sur le bouton et choisir "visualiser le code".
bonne journée
Messages postés
2
Date d'inscription
dimanche 14 mars 2010
Statut
Membre
Dernière intervention
24 mars 2010

Bonsoir
Des événements imprévus m'ont empêché de répondre à ce message du 15 mars. Toutes mes excuses.
J'obtiens :
erreur d'exécution "1004"
la méthode Select de la classe Range a échoué.
Quand je demande le débogage cela m'indique une ligne où il y a :
cells(20 * (numero - 1) + 6, 4).Select
Cette ligne est celle qui suit la ligne :
Sheets("ARVAS").Select
Quand à l'erreur se produit, c'est bien la feuille ARVAS qui est sélectionnée.
Quand je passe la souris au-dessus de numero, j'obtiens : numero= 2 ce qui est normal.

D'autre part la macro est bien enregistrée sur la feuille où est le bouton. Et "envoi" est le nom de la macro qui marche bien quand je demande son exécution directement. Cette macro est écrite en dessous de celle du bouton.
Private Sub CommandButton2_Click()
envoi
End Sub
Merci d'avance pour une réponse.