supers03
Messages postés106Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 1 décembre 2008
-
20 déc. 2005 à 18:44
supers03
Messages postés106Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 1 décembre 2008
-
21 déc. 2005 à 21:43
Bonjour à tous.
En fait ce que jaimerai faire cest créer dynamiquement des Label sur ma Form, le tout dans une macro Excel (donc cest du VBA si jai bien compris)
Donc pour cela jai cru comprendre quil fallait utiliser Load, méthode très bien expliquée dans une célèbre source dAmonbofis « AJOUTER DYNAMIQUEMENT DES CONTRÔLES », source que je narrive malheureusement pas à trouver.
Donc jai essayer de trouver des petites infos par-ci par là sur le forum, pour enfin essayer (après avoir mis un contrôle Label1 sur ma form):
Load Label1(1)
Label1(1).Visible = True
Mais lorsque je lance la macro jai une erreur :
« Erreur de compilation : Nombre darguments incorrect ou affectation de propriétés incorrecte »
De plus jai vu quil fallait mettre la propriété Index à 0 pour le Label1, mais moi jai pas cette propriété, jai juste tabIndex(où jai mis la valeur 0)
Donc si quelquun pouvais maider je lui en serrai grandement reconnaissant
Merci d'avance
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 21 déc. 2005 à 20:34
Pour une userform, c'est vrai c'est différent, une piste que je viens de tester :
Sub macro1()
Dim c As Control
Set c = UserForm1.Controls.Add("Forms.Label.1", "toto", True)
c.Top = 50
c.Left = 50
c.BackColor = vbWhite
c.Caption = "coucou"
UserForm1.Show
End Sub
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 déc. 2005 à 18:55
Salut
L'indexation de controle n'est pas supporté sur VBA.
Je crois qu'il y a un autre moyen, mais je ne m'en souviens plus.
As-tu cherché sur le forum ? (car c'est une question fréquente)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
supers03
Messages postés106Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 1 décembre 2008 20 déc. 2005 à 23:51
jack : en effet j'ai déjà vu cette question sur le forum, mais la réponse est toujours la même : "regarde la source dAmonbofis" ou "utilise Load" avec des exemple qui marchent pas chez moi, surement parce que j'utilise VBA
CanisLupus : ta ligne en elle même ne marche pas chez moi, j'ai donc regardé du coté de "AddOLEObject" et j'ai trouvé un exemple avec un bouton à la place d'un label :
Dim objWorksheet As Worksheet
Set objWorksheet = ThisWorkbook.Worksheets(1)
objWorksheet.Shapes.AddOLEObject "Forms.CommandButton.1", , , , , , , 141, 28.5, 153, 27.75
Ce code marche chez moi, sauf que ça affiche le bouton sur la feuille de calcul et pas sur ma Form .
D'ailleur j'avais eu ce problème en voulant tracer un rectangle sur ma form, j'avais essayé
supers03
Messages postés106Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 1 décembre 2008 21 déc. 2005 à 17:15
Personne ne sait???
jack, CanisLupus, vous n'avez pas une petite idée qui puisse me mettre sur la voie? parce que j'ai vraiment besoin de rajouter des contrôle dynamiquement et j'ai du mal à croire que personne n'a essayé en VBA ...
supers03
Messages postés106Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 1 décembre 2008 21 déc. 2005 à 21:43
Merci beacoup c'est exactement ce que je voulais faire.
Je vais chercher voir si je peu trouver la liste de tout les controles que l'on peu ajouter, de la même manière que "Forms.Label.1" (exemple : un rectangle)