Bouton de commande

Bonjour, dans une application EXCEL j'ai rajouté sur une feuille un bouton de commande pour imprimer une plage d'une autre feuille. Ce bouton (activeX) a le code suivant:

Public Sub CommandButton 2 _click()

imprimer_plan

End sub

En cliquant sur ce bouton j'ai un message: Erreur de compilation, argument non facultatif.

La création des autres boutons ( création bien antérieure) sur cette feuille ne m'a jamais posé de problème. Je ne sais que mettre comme argument ni sous quelle forme. Merci au(x) contributeur(s) qui débloqueront la situation. Bonnes fêtes à toutes et tous, JL

Bonjour,

Si la macro "imprimer_plan" se trouve sur une feuille, il faut préciser le nom de la feuille

ex:

sheets("Feuil1").imprimer_plan

mais le mieux est de mettre ta macro d'impression dans un module

Bonjour CAP24,

ça appelle la sub imprimer_plan, et faut voir cette Sub imprimer_plan(...) pour savoir quels sont les arguments à envoyer ; lire ce qui est entre parenthèses dans ta vraie sub ; il y a peut-être un seul argument ; peut-être plus ; faut aussi voir le type de ces arguments ; y'a p't'être des arguments à transmettre par valeur (ByVal au lieu du ByRef implicite) ; y'a p't'être des arguments facultatifs (utilisation de Optional)... bref, tes infos sont pas suffisantes pour pouvoir te donner une réponse précise.


Bonjour M12,

screen

l'erreur est celle-ci : « Erreur de compilation, argument non facultatif » ; t'as trop fait la fête ?

dhany

Bonjour,

Si la macro "imprimer_plan" se trouve sur une feuille, il faut préciser le nom de la feuille

ex:

sheets("Feuil1").imprimer_plan

mais le mieux est de mettre ta macro d'impression dans un module

Comme ceci?? (ça ne fonctionne pas erreur de compilation)

Public sub CommandButton2_click sheets("Accueil")

imprimer_plan

end sub

Le bouton est situé sur la feuille ("Accueil")

la macro "imprimer_plan" est dans un module dédié aux impressions

J'ai inséré un bouton sur une autre feuille de l'application et là je n'ai pas de souci, l'erreur ne se produit que si le bouton est situé sur cette feuille ("Accueil").

J'ai également démarré une autre application et là pareil tous les boutons fonctionnent à merveille!

Faut peut-être recréer cette feuille accueil? Bonne fête, JL

Bonjour CAP24,

[quote="dans ton énoncé, tu"]En cliquant sur ce bouton j'ai un message : Erreur de compilation, argument non facultatif.[/quote]

donc quoi que tu fasses au niveau de tes feuilles de calcul, cette erreur persistera tant que tu n'auras pas envoyé l'argument obligatoire (et p't'être même qu'y'en a plus qu'un seul).

Public Sub CommandButton 2 _click()
  imprimer_plan
End sub

ta sub CommandButton 2 _click() appelle la sub imprimer_plan() sans aucun argument !

c'est valable seulement si ta sub imprimer_plan() ne reçoit aucun argument, mais c'est pas le cas, car alors, tu n'aurais pas eu ton message d'erreur « argument non facultatif ».


si l'entête de ta sub est par exemple : Sub imprimer_plan(sh As String, plg As String)

sh et plg sont 2 arguments obligatoires, et et tu es obligé de les transmettre lors de l'appel :

Public Sub CommandButton 2 _click()
  'imprime le plan de Feuil5, plage B3:F20
  imprimer_plan "Feuil5", "B3:F20"
End sub
Sub imprimer_plan(sh As String, plg As String)
  With Worksheets(sh).Range(plg)
    'instructions pour imprimer le plan de la plage indiquée
  End With
End Sub

tu comprends donc pourquoi ton énoncé n'est pas complet puisqu'il manque l'entête de la sub imprimer_plan().

impossible de t'aider plus sans voir cet entête de sub, et ce serait plus sûr encore si tu mets la sub complète :

on pourrait alors vérifier que tu n'as pas mis d'argument inutile, et qu'ils sont du bon type.

dhany

Bonjour, merci pour l'exemple, maintenant ça fonctionne! Bonne année à toi, JL

merci pour ton retour, et pour avoir passé le sujet en résolu !

bonne année à toi aussi !

dhany

Rechercher des sujets similaires à "bouton commande"