Création de contrôle dynamiquement [Résolu]

Messages postés
106
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
1 décembre 2008
- - Dernière réponse : supers03
Messages postés
106
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
1 décembre 2008
- 21 déc. 2005 à 21:43
Bonjour à tous.





En fait ce que j’aimerai faire c’est créer dynamiquement des Label sur ma Form, le tout dans une macro Excel (donc c’est du VBA si j’ai bien compris)


Donc pour cela j’ai cru comprendre qu’il fallait utiliser Load, méthode très bien expliquée dans une célèbre source d’Amonbofis « AJOUTER DYNAMIQUEMENT DES CONTRÔLES », source que je n’arrive malheureusement pas à trouver.


Donc j’ai 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 j’ai une erreur :


« Erreur de compilation : Nombre d’arguments incorrect ou affectation de propriétés incorrecte »


De plus j’ai vu qu’il fallait mettre la propriété Index à 0 pour le Label1, mais moi j’ai pas cette propriété, j’ai juste tabIndex(où j’ai mis la valeur 0)


Donc si quelqu’un pouvais m’aider je lui en serrai grandement reconnaissant
Merci d'avance
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
3
Merci
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 !?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 193 internautes nous ont dit merci ce mois-ci

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
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)
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
0
Merci
Salut,

Si mes souvenirs sont exacts, vois du côté de la collection Shapes :
TaFeuille.Shapes.AddOLEObject "Forms.Label.1", etc...

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
106
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
1 décembre 2008
0
Merci
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 d’Amonbofis" 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é

ActiveSheet.Shapes.addShape(msoShapeRectangle, 10, 10, 100, 20).Name = "le_nom"

mais pareil, le rectangle s'affiche sur la feuille de calcul et pas sur la Form.

Mes deux problèmes ont peut-être la même solution, sachant que mon but est pour les deux cas de dessiner et écrire dynamiquement sur ma Form
Messages postés
106
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
1 décembre 2008
0
Merci
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 ...
Messages postés
106
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
1 décembre 2008
0
Merci
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)

Encore merci,

Sylvain