Bonjour,
J'ai un problème qui doit certainement être tout simple, mais même après avoir épluché tous les codes sources que j'ai pu trouvé, je n'ai pas réussi à le résoudre.
Je veux simple créer un bouton, pour ensuite lui associer une fonction pré-existante. Le problème est que je veux créer ce bouton dans une feuille excel que je viens de créer dynamiquement (elle même dans un workbook que je viens de créer dynamiquement). Si je veux le créer dans ma feuille interface (celle qui contient le code, ou plus exactement les boutons qui lance les fonctions contenue dans des modules), pas de problème, le code suivant fonctionne:
Public Sub CreateButtonTest1(nomClient)
ActiveSheet.Buttons.Add(199.5, 300, 81, 36).Select
Selection.Name = nomClient
Selection.OnAction = "test2"
End Sub
Par contre, quand j'essaie de passer en argument mon objet WorkSheet, ca ne fonctionne pas:
(newSheet est du type Worksheet, créé à partir d'un nouveau WorkBook
et nomClient est de type string).
Public Sub CreateButtonTest2(newSheet, nomClient)
newSheet.Buttons.Add(199.5, 300, 81, 36).Select
Selection.Name = nomClient
Selection.OnAction = "test2"
End Sub
L'erreur est: "438"
Propriété ou méthode non géré par cet objet
et le débuggeur bug à la ligne Selection.OnAction = "test2"
A noter que le bouton est bien créé la ou je veux (dans mon newSheet), mais inutilisable car pas de lien vers une fonction.
Sur un autre forum, quelqu'un m'a suggéré que c'était probablement un problème de visibilité de mes fonctions dans la nouvelle feuille du nouveau classeur, mais je n'ai pas réussi à résoudre le problème.
Si quelqu'un a une idée d'ou peut venir le problème, je lui serai vraiment reconnaissant !
Une autre solution serait de changer le ActiveSheet, mais je n'ai pas réussi (pourtant ca doit être possible et facile).
Merci d'avance,
Maxence