Bonsoir à tous,
Avant de vous exposer mon souci, voici les versions sur lesquelles je travaille :
Excel 2003 (11.8324.8221) SP3
Visual Basic 6.3
Voilà le contexte :
A la base, je voulais ajouter des formulaires de contrôle de type "OptionButton" à une feuille de calcul. Cependant, tous les boutons étaient liés entre eux et s'excluaient, alors que je voulais qu'ils fonctionnent par paires (deux questions ayant pour choix "Oui" ou "Non").
Je me suis donc tourné vers des contrôles MsForms incorporés à la feuille. Pour la syntaxe, je me suis appuyé sur ce tutoriel remarquablement bien fait de J-M Rabilloud :
Formation VBA
Et c'est là que l'erreur se produit. Le code est le suivant, directement recopié du tuto page 215 :
J'obtiens une erreur n°13 : incompatibilité de type.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Sub test() Dim Feuille As Worksheet, rngPos As Range Dim Opt As MsForms.OptionButton Set Feuille = ThisWorkbook.Sheets("MENU") Set rngPos = Feuille.Cells(6, 1) Set Opt = Feuille.OLEObjects.Add("Forms.OptionButton.1", , , , , , , rngPos.Left, rngPos.Top, rngPos.Width, rngPos.Height) End Sub
Autre remarque, si j'utilise la méthode "add" en l'affectant à un OLEObject, ça fonctionne. Seulement je ne peux pas accéder à la propriété qui m'intéressait dans les MsForms, à savoir "GroupName".
Après recherche, le problème ressemble fortement à celui de cette page :
http://support.microsoft.com/kb/166933/fr
Malheureusement, vous vous en douterez, la solution proposée ne fonctionne pas.
Voilà, j'espère que vous serez inspiré. Je suis ouvert à une solution de contournement si celle-ci reste sans issue.
Merci d'avance !
Olivier
Partager