j'aimerai pouvoir dupliquer des labels et des rectangles dans ma Form,
le tout dynamiquement (c'est =E0 dire une fois la macro lanc=E9e)
J'ai essay=E9
Load Label1(1)
Label1(1).Visible =3D True
mais lors de l'ex=E9cution de la macro j'ai l'erreur suivant :
=AB Erreur de compilation : Nombre d'arguments incorrect ou
affectation de propri=E9t=E9s incorrecte =BB
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Super03,
Un exemple de Frédéric Sigonneau sur comment insérer un bouton de commande et le code associé à un fomulaire sur le volet.
'======================= 1 'ajoute un commandbutton à un userform existant '(avec le code de son événement Click)
Sub AddBouton() Dim Usf As Object, btn As Object Set Usf = ThisWorkbook.VBProject.VBComponents("Userform1") Set btn = Usf.Designer.Controls.Add("forms.commandbutton.1") With btn .Caption = "Cliquer ici !..." .Left = 60: .Top = 50 End With With Usf.CodeModule X = .CountOfLines .insertlines X + 1, "Sub CommandButton1_Click()" .insertlines X + 2, " MsgBox ""coucou""" .insertlines X + 3, " unload Me" .insertlines X + 4, "End Sub" End With VBA.UserForms.Add (Usf.Name) UserForms(UserForms.Count - 1).Show End Sub 'fs '======================
Salutations!
a écrit dans le message de news: Bonjour à tous,
j'aimerai pouvoir dupliquer des labels et des rectangles dans ma Form, le tout dynamiquement (c'est à dire une fois la macro lancée) J'ai essayé
Load Label1(1) Label1(1).Visible = True
mais lors de l'exécution de la macro j'ai l'erreur suivant : « Erreur de compilation : Nombre d'arguments incorrect ou affectation de propriétés incorrecte »
Quelqu'un saurrait-il faire celà ???
Bonjour Super03,
Un exemple de Frédéric Sigonneau sur comment insérer un bouton
de commande et le code associé à un fomulaire sur le volet.
'======================= 1
'ajoute un commandbutton à un userform existant
'(avec le code de son événement Click)
Sub AddBouton()
Dim Usf As Object, btn As Object
Set Usf = ThisWorkbook.VBProject.VBComponents("Userform1")
Set btn = Usf.Designer.Controls.Add("forms.commandbutton.1")
With btn
.Caption = "Cliquer ici !..."
.Left = 60: .Top = 50
End With
With Usf.CodeModule
X = .CountOfLines
.insertlines X + 1, "Sub CommandButton1_Click()"
.insertlines X + 2, " MsgBox ""coucou"""
.insertlines X + 3, " unload Me"
.insertlines X + 4, "End Sub"
End With
VBA.UserForms.Add (Usf.Name)
UserForms(UserForms.Count - 1).Show
End Sub 'fs
'======================
Salutations!
<supers03@gmail.com> a écrit dans le message de news: 1135182763.799722.95120@g47g2000cwa.googlegroups.com...
Bonjour à tous,
j'aimerai pouvoir dupliquer des labels et des rectangles dans ma Form,
le tout dynamiquement (c'est à dire une fois la macro lancée)
J'ai essayé
Load Label1(1)
Label1(1).Visible = True
mais lors de l'exécution de la macro j'ai l'erreur suivant :
« Erreur de compilation : Nombre d'arguments incorrect ou
affectation de propriétés incorrecte »
Un exemple de Frédéric Sigonneau sur comment insérer un bouton de commande et le code associé à un fomulaire sur le volet.
'======================= 1 'ajoute un commandbutton à un userform existant '(avec le code de son événement Click)
Sub AddBouton() Dim Usf As Object, btn As Object Set Usf = ThisWorkbook.VBProject.VBComponents("Userform1") Set btn = Usf.Designer.Controls.Add("forms.commandbutton.1") With btn .Caption = "Cliquer ici !..." .Left = 60: .Top = 50 End With With Usf.CodeModule X = .CountOfLines .insertlines X + 1, "Sub CommandButton1_Click()" .insertlines X + 2, " MsgBox ""coucou""" .insertlines X + 3, " unload Me" .insertlines X + 4, "End Sub" End With VBA.UserForms.Add (Usf.Name) UserForms(UserForms.Count - 1).Show End Sub 'fs '======================
Salutations!
a écrit dans le message de news: Bonjour à tous,
j'aimerai pouvoir dupliquer des labels et des rectangles dans ma Form, le tout dynamiquement (c'est à dire une fois la macro lancée) J'ai essayé
Load Label1(1) Label1(1).Visible = True
mais lors de l'exécution de la macro j'ai l'erreur suivant : « Erreur de compilation : Nombre d'arguments incorrect ou affectation de propriétés incorrecte »
Quelqu'un saurrait-il faire celà ???
Michel Gaboly
Bonsoir,
As-tu pensé à la méthode simple qui consiste à créer dés le d épart sur le UserForm tous les objets dont tu peux avoir besoin, et à mettre à False (fenêtre propriétés ou événemen t Initialize) la propriété Visible de ceux qui ne doivent pas étre affichés au départ.
Ensuite, dans des procédures événementielles, tu affiches et/ou tu masques ce qui doit l'être.
Pas possible ?
Bonjour à tous,
j'aimerai pouvoir dupliquer des labels et des rectangles dans ma Form, le tout dynamiquement (c'est à dire une fois la macro lancée) J'ai essayé
Load Label1(1) Label1(1).Visible = True
mais lors de l'exécution de la macro j'ai l'erreur suivant : « Erreur de compilation : Nombre d'arguments incorrect ou affectation de propriétés incorrecte »
Quelqu'un saurrait-il faire celà ???
-- Cordialement,
Michel Gaboly www.gaboly.com
Bonsoir,
As-tu pensé à la méthode simple qui consiste à créer dés le d épart sur le UserForm tous les objets dont tu peux avoir
besoin, et à mettre à False (fenêtre propriétés ou événemen t Initialize) la propriété Visible de ceux qui ne doivent pas
étre affichés au départ.
Ensuite, dans des procédures événementielles, tu affiches et/ou tu masques ce qui doit l'être.
Pas possible ?
Bonjour à tous,
j'aimerai pouvoir dupliquer des labels et des rectangles dans ma Form,
le tout dynamiquement (c'est à dire une fois la macro lancée)
J'ai essayé
Load Label1(1)
Label1(1).Visible = True
mais lors de l'exécution de la macro j'ai l'erreur suivant :
« Erreur de compilation : Nombre d'arguments incorrect ou
affectation de propriétés incorrecte »
As-tu pensé à la méthode simple qui consiste à créer dés le d épart sur le UserForm tous les objets dont tu peux avoir besoin, et à mettre à False (fenêtre propriétés ou événemen t Initialize) la propriété Visible de ceux qui ne doivent pas étre affichés au départ.
Ensuite, dans des procédures événementielles, tu affiches et/ou tu masques ce qui doit l'être.
Pas possible ?
Bonjour à tous,
j'aimerai pouvoir dupliquer des labels et des rectangles dans ma Form, le tout dynamiquement (c'est à dire une fois la macro lancée) J'ai essayé
Load Label1(1) Label1(1).Visible = True
mais lors de l'exécution de la macro j'ai l'erreur suivant : « Erreur de compilation : Nombre d'arguments incorrect ou affectation de propriétés incorrecte »
Quelqu'un saurrait-il faire celà ???
-- Cordialement,
Michel Gaboly www.gaboly.com
supers03
Merci bien pour cet exemple, mais malheuresement ça ne marche pas, petite erreur d'execution : "La méthode 'VBProject' de l'objet '_Workbook' a échoué"
Michdenis, une petie idée?
Merci d'avance, Sylvain
Merci bien pour cet exemple, mais malheuresement ça ne marche pas,
petite erreur d'execution :
"La méthode 'VBProject' de l'objet '_Workbook' a échoué"
Merci bien pour cet exemple, mais malheuresement ça ne marche pas, petite erreur d'execution : "La méthode 'VBProject' de l'objet '_Workbook' a échoué"
Michdenis, une petie idée?
Merci d'avance, Sylvain
Michel Gaboly
Bonsoir,
Pour utiliser ce genre de code il faut avoir coché dans les référen ces (menu Outils de l'environnement VBE) "Microsoft Visual Basic for Applications Extensibility".
Merci bien pour cet exemple, mais malheuresement ça ne marche pas, petite erreur d'execution : "La méthode 'VBProject' de l'objet '_Workbook' a échoué"
Michdenis, une petie idée?
Merci d'avance, Sylvain
-- Cordialement,
Michel Gaboly www.gaboly.com
Bonsoir,
Pour utiliser ce genre de code il faut avoir coché dans les référen ces (menu Outils de l'environnement VBE) "Microsoft
Visual Basic for Applications Extensibility".
Merci bien pour cet exemple, mais malheuresement ça ne marche pas,
petite erreur d'execution :
"La méthode 'VBProject' de l'objet '_Workbook' a échoué"
Pour utiliser ce genre de code il faut avoir coché dans les référen ces (menu Outils de l'environnement VBE) "Microsoft Visual Basic for Applications Extensibility".
Merci bien pour cet exemple, mais malheuresement ça ne marche pas, petite erreur d'execution : "La méthode 'VBProject' de l'objet '_Workbook' a échoué"
Michdenis, une petie idée?
Merci d'avance, Sylvain
-- Cordialement,
Michel Gaboly www.gaboly.com
supers03
Michel Gaboly :
Désolé j'étais en train de répondre quand tu m'as répondu. Il ne m'est pas possible de mettre les objets sur la Form dès le début parce que je n'ai absolument aucune idée du nombre d'éléments qu'il faudra (ça dépendra de l'utilisateur).
Sinon j'ai coché l'option que tu m'as indiqué, mais j'ai une nouvelle erreur : "l'accès par programme au projet Visual Basic n'est pas fiable" puis la même erreur qu'auparavent !!!
Michel Gaboly :
Désolé j'étais en train de répondre quand tu m'as répondu. Il ne
m'est pas possible de mettre les objets sur la Form dès le début
parce que je n'ai absolument aucune idée du nombre d'éléments qu'il
faudra (ça dépendra de l'utilisateur).
Sinon j'ai coché l'option que tu m'as indiqué, mais j'ai une nouvelle
erreur :
"l'accès par programme au projet Visual Basic n'est pas fiable"
puis la même erreur qu'auparavent !!!
Désolé j'étais en train de répondre quand tu m'as répondu. Il ne m'est pas possible de mettre les objets sur la Form dès le début parce que je n'ai absolument aucune idée du nombre d'éléments qu'il faudra (ça dépendra de l'utilisateur).
Sinon j'ai coché l'option que tu m'as indiqué, mais j'ai une nouvelle erreur : "l'accès par programme au projet Visual Basic n'est pas fiable" puis la même erreur qu'auparavent !!!
michdenis
Bonjour Michel,
Barre des menus de la feuille de calcul / outils / macro / sécurité / onglets :éditeurs approuvés
et dans le bas de la fenêtre, tu coches les 2 cases à cocher
Salutations!
a écrit dans le message de news: Michel Gaboly :
Désolé j'étais en train de répondre quand tu m'as répondu. Il ne m'est pas possible de mettre les objets sur la Form dès le début parce que je n'ai absolument aucune idée du nombre d'éléments qu'il faudra (ça dépendra de l'utilisateur).
Sinon j'ai coché l'option que tu m'as indiqué, mais j'ai une nouvelle erreur : "l'accès par programme au projet Visual Basic n'est pas fiable" puis la même erreur qu'auparavent !!!
Bonjour Michel,
Barre des menus de la feuille de calcul / outils / macro / sécurité / onglets :éditeurs approuvés
et dans le bas de la fenêtre, tu coches les 2 cases à cocher
Salutations!
<supers03@gmail.com> a écrit dans le message de news: 1135188503.101720.189140@f14g2000cwb.googlegroups.com...
Michel Gaboly :
Désolé j'étais en train de répondre quand tu m'as répondu. Il ne
m'est pas possible de mettre les objets sur la Form dès le début
parce que je n'ai absolument aucune idée du nombre d'éléments qu'il
faudra (ça dépendra de l'utilisateur).
Sinon j'ai coché l'option que tu m'as indiqué, mais j'ai une nouvelle
erreur :
"l'accès par programme au projet Visual Basic n'est pas fiable"
puis la même erreur qu'auparavent !!!
Barre des menus de la feuille de calcul / outils / macro / sécurité / onglets :éditeurs approuvés
et dans le bas de la fenêtre, tu coches les 2 cases à cocher
Salutations!
a écrit dans le message de news: Michel Gaboly :
Désolé j'étais en train de répondre quand tu m'as répondu. Il ne m'est pas possible de mettre les objets sur la Form dès le début parce que je n'ai absolument aucune idée du nombre d'éléments qu'il faudra (ça dépendra de l'utilisateur).
Sinon j'ai coché l'option que tu m'as indiqué, mais j'ai une nouvelle erreur : "l'accès par programme au projet Visual Basic n'est pas fiable" puis la même erreur qu'auparavent !!!
michdenis
Bonjour Super03,
La procédure que je t'ai proposée ne requiert l'ajout d'aucune référence particulière à ton projet.
Pour la tester :
Ajoute un formulaire que tu nommes "userform1" Laisse sans bouton et sans code afin de t'assurer qu'il n'y a pas de conflit dans les noms des objets et dans les déclarations de procédure. Tu places le code dans un module Standard et tu exécutes la procédure.
Et pis, ça marche !!!
Salutations!
a écrit dans le message de news: Merci bien pour cet exemple, mais malheuresement ça ne marche pas, petite erreur d'execution : "La méthode 'VBProject' de l'objet '_Workbook' a échoué"
Michdenis, une petie idée?
Merci d'avance, Sylvain
Bonjour Super03,
La procédure que je t'ai proposée ne requiert l'ajout d'aucune référence particulière à ton projet.
Pour la tester :
Ajoute un formulaire que tu nommes "userform1"
Laisse sans bouton et sans code afin de t'assurer qu'il n'y a pas
de conflit dans les noms des objets et dans les déclarations de procédure.
Tu places le code dans un module Standard et tu exécutes la procédure.
Et pis, ça marche !!!
Salutations!
<supers03@gmail.com> a écrit dans le message de news: 1135185859.258879.193350@z14g2000cwz.googlegroups.com...
Merci bien pour cet exemple, mais malheuresement ça ne marche pas,
petite erreur d'execution :
"La méthode 'VBProject' de l'objet '_Workbook' a échoué"
La procédure que je t'ai proposée ne requiert l'ajout d'aucune référence particulière à ton projet.
Pour la tester :
Ajoute un formulaire que tu nommes "userform1" Laisse sans bouton et sans code afin de t'assurer qu'il n'y a pas de conflit dans les noms des objets et dans les déclarations de procédure. Tu places le code dans un module Standard et tu exécutes la procédure.
Et pis, ça marche !!!
Salutations!
a écrit dans le message de news: Merci bien pour cet exemple, mais malheuresement ça ne marche pas, petite erreur d'execution : "La méthode 'VBProject' de l'objet '_Workbook' a échoué"
Michdenis, une petie idée?
Merci d'avance, Sylvain
supers03
Effectivement ça marche même sans ajouter "Microsoft Visual Basic for Applications Extensibility", à condition donc de bien cocher les deux cases dans les sécurités des macro.
MsgBox "coucou" unload Me
Mais je comprend pas trop le Unload Me : j'aurrai pensé que ça enlevait le bouton de la form, mais à priori non, après avoir fermé la MsgBox le bouton reste, et il reste même après que la macro soit terminée. C'est normal ça ?
En tout cas merci beacoup à tout deux ^_^ Amicalement, Sylvain
Effectivement ça marche même sans ajouter "Microsoft Visual Basic for
Applications Extensibility", à condition donc de bien cocher les deux
cases dans les sécurités des macro.
MsgBox "coucou"
unload Me
Mais je comprend pas trop le Unload Me : j'aurrai pensé que ça
enlevait le bouton de la form, mais à priori non, après avoir fermé
la MsgBox le bouton reste, et il reste même après que la macro soit
terminée. C'est normal ça ?
En tout cas merci beacoup à tout deux ^_^
Amicalement,
Sylvain
Effectivement ça marche même sans ajouter "Microsoft Visual Basic for Applications Extensibility", à condition donc de bien cocher les deux cases dans les sécurités des macro.
MsgBox "coucou" unload Me
Mais je comprend pas trop le Unload Me : j'aurrai pensé que ça enlevait le bouton de la form, mais à priori non, après avoir fermé la MsgBox le bouton reste, et il reste même après que la macro soit terminée. C'est normal ça ?
En tout cas merci beacoup à tout deux ^_^ Amicalement, Sylvain
michdenis
Bonjour Super03,
'Décharge le formulaire de la mémoire vive Unload Userform1
Que le bouton reste dans l'autre procédure présentée : Oui, c'est normal et voulu !
Un autre exemple provenant de ce forum mais je n'ai plus le nom de son auteur :
Permet de créer un formulaire à la volée et un bouton sur ce formulaire : Code à copier dans un module Standard. '--------------------------------- Sub UserForm_aLaVolee() Dim UF As Object Dim L As MSForms.Label Dim CB As MSForms.CommandButton Dim A$ Dim i& On Error GoTo fin '---- Crée dynamiquement un UserForm ---- Set UF = ThisWorkbook.VBProject _ .VBComponents.Add(vbext_ct_MSForm) With UF .Properties("Caption") = _ "UserForm à la volée" .Properties("Height") = 240 .Properties("Width") = 320 End With '---- Crée le bouton de fermeture ---- Set CB = UF.Designer.Controls _ .Add("forms.CommandButton.1") With CB .Caption = "Fermer" .Left = 200 .Top = 180 End With '---- Crée le label ---- Set L = UF.Designer.Controls _ .Add("forms.Label.1") With L .Caption = "mon texte" .TextAlign = fmTextAlignCenter .Left = 20 .Top = 20 .BackColor = vbRed .BorderStyle = fmBorderStyleSingle End With '°°° Ajout du code évènementiel °°° A$ = "Sub CommandButton1_Click()" & _ vbCrLf & "Unload Me" & _ vbCrLf & "End Sub" With UF.CodeModule i& = .CountOfLines .InsertLines i& + 1, A$ End With '----------- A$ = "Sub Label1_Click()" & _ vbCrLf & "MsgBox " & _ """Vous avez cliqué sur mon texte""" & _ vbCrLf & "End Sub" With UF.CodeModule i& = .CountOfLines .InsertLines i& + 1, A$ End With '---- Affiche le UserForm ---- VBA.UserForms.Add(UF.Name).Show '---- Détruit le UserForm ---- ThisWorkbook.VBProject.VBComponents _ .Remove UF fin: End Sub '---------------------------------
Salutations!
a écrit dans le message de news: Effectivement ça marche même sans ajouter "Microsoft Visual Basic for Applications Extensibility", à condition donc de bien cocher les deux cases dans les sécurités des macro.
MsgBox "coucou" unload Me
Mais je comprend pas trop le Unload Me : j'aurrai pensé que ça enlevait le bouton de la form, mais à priori non, après avoir fermé la MsgBox le bouton reste, et il reste même après que la macro soit terminée. C'est normal ça ?
En tout cas merci beacoup à tout deux ^_^ Amicalement, Sylvain
Bonjour Super03,
'Décharge le formulaire de la mémoire vive
Unload Userform1
Que le bouton reste dans l'autre procédure présentée :
Oui, c'est normal et voulu !
Un autre exemple provenant de ce forum mais je n'ai plus
le nom de son auteur :
Permet de créer un formulaire à la volée et un bouton sur ce formulaire :
Code à copier dans un module Standard.
'---------------------------------
Sub UserForm_aLaVolee()
Dim UF As Object
Dim L As MSForms.Label
Dim CB As MSForms.CommandButton
Dim A$
Dim i&
On Error GoTo fin
'---- Crée dynamiquement un UserForm ----
Set UF = ThisWorkbook.VBProject _
.VBComponents.Add(vbext_ct_MSForm)
With UF
.Properties("Caption") = _
"UserForm à la volée"
.Properties("Height") = 240
.Properties("Width") = 320
End With
'---- Crée le bouton de fermeture ----
Set CB = UF.Designer.Controls _
.Add("forms.CommandButton.1")
With CB
.Caption = "Fermer"
.Left = 200
.Top = 180
End With
'---- Crée le label ----
Set L = UF.Designer.Controls _
.Add("forms.Label.1")
With L
.Caption = "mon texte"
.TextAlign = fmTextAlignCenter
.Left = 20
.Top = 20
.BackColor = vbRed
.BorderStyle = fmBorderStyleSingle
End With
'°°° Ajout du code évènementiel °°°
A$ = "Sub CommandButton1_Click()" & _
vbCrLf & "Unload Me" & _
vbCrLf & "End Sub"
With UF.CodeModule
i& = .CountOfLines
.InsertLines i& + 1, A$
End With
'-----------
A$ = "Sub Label1_Click()" & _
vbCrLf & "MsgBox " & _
"""Vous avez cliqué sur mon texte""" & _
vbCrLf & "End Sub"
With UF.CodeModule
i& = .CountOfLines
.InsertLines i& + 1, A$
End With
'---- Affiche le UserForm ----
VBA.UserForms.Add(UF.Name).Show
'---- Détruit le UserForm ----
ThisWorkbook.VBProject.VBComponents _
.Remove UF
fin:
End Sub
'---------------------------------
Salutations!
<supers03@gmail.com> a écrit dans le message de news: 1135195212.113082.199380@g47g2000cwa.googlegroups.com...
Effectivement ça marche même sans ajouter "Microsoft Visual Basic for
Applications Extensibility", à condition donc de bien cocher les deux
cases dans les sécurités des macro.
MsgBox "coucou"
unload Me
Mais je comprend pas trop le Unload Me : j'aurrai pensé que ça
enlevait le bouton de la form, mais à priori non, après avoir fermé
la MsgBox le bouton reste, et il reste même après que la macro soit
terminée. C'est normal ça ?
En tout cas merci beacoup à tout deux ^_^
Amicalement,
Sylvain
'Décharge le formulaire de la mémoire vive Unload Userform1
Que le bouton reste dans l'autre procédure présentée : Oui, c'est normal et voulu !
Un autre exemple provenant de ce forum mais je n'ai plus le nom de son auteur :
Permet de créer un formulaire à la volée et un bouton sur ce formulaire : Code à copier dans un module Standard. '--------------------------------- Sub UserForm_aLaVolee() Dim UF As Object Dim L As MSForms.Label Dim CB As MSForms.CommandButton Dim A$ Dim i& On Error GoTo fin '---- Crée dynamiquement un UserForm ---- Set UF = ThisWorkbook.VBProject _ .VBComponents.Add(vbext_ct_MSForm) With UF .Properties("Caption") = _ "UserForm à la volée" .Properties("Height") = 240 .Properties("Width") = 320 End With '---- Crée le bouton de fermeture ---- Set CB = UF.Designer.Controls _ .Add("forms.CommandButton.1") With CB .Caption = "Fermer" .Left = 200 .Top = 180 End With '---- Crée le label ---- Set L = UF.Designer.Controls _ .Add("forms.Label.1") With L .Caption = "mon texte" .TextAlign = fmTextAlignCenter .Left = 20 .Top = 20 .BackColor = vbRed .BorderStyle = fmBorderStyleSingle End With '°°° Ajout du code évènementiel °°° A$ = "Sub CommandButton1_Click()" & _ vbCrLf & "Unload Me" & _ vbCrLf & "End Sub" With UF.CodeModule i& = .CountOfLines .InsertLines i& + 1, A$ End With '----------- A$ = "Sub Label1_Click()" & _ vbCrLf & "MsgBox " & _ """Vous avez cliqué sur mon texte""" & _ vbCrLf & "End Sub" With UF.CodeModule i& = .CountOfLines .InsertLines i& + 1, A$ End With '---- Affiche le UserForm ---- VBA.UserForms.Add(UF.Name).Show '---- Détruit le UserForm ---- ThisWorkbook.VBProject.VBComponents _ .Remove UF fin: End Sub '---------------------------------
Salutations!
a écrit dans le message de news: Effectivement ça marche même sans ajouter "Microsoft Visual Basic for Applications Extensibility", à condition donc de bien cocher les deux cases dans les sécurités des macro.
MsgBox "coucou" unload Me
Mais je comprend pas trop le Unload Me : j'aurrai pensé que ça enlevait le bouton de la form, mais à priori non, après avoir fermé la MsgBox le bouton reste, et il reste même après que la macro soit terminée. C'est normal ça ?
En tout cas merci beacoup à tout deux ^_^ Amicalement, Sylvain
supers03
En me balladant j'ai finalement trouvé une autre solution :
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
Qui a l'avanage de ne pas avoir besoin des définir des niveau de sécurité spécifique, ni d'ajouter des références. Par contre, je n'ai pas réussi à adapter le code pour pouvoir intégrer des procédures, comme c'est le cas pour l'exemple proposé par Michdenis.
Sylvain
En me balladant j'ai finalement trouvé une autre solution :
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
Qui a l'avanage de ne pas avoir besoin des définir des niveau de
sécurité spécifique, ni d'ajouter des références.
Par contre, je n'ai pas réussi à adapter le code pour pouvoir
intégrer des procédures, comme c'est le cas pour l'exemple proposé
par Michdenis.
En me balladant j'ai finalement trouvé une autre solution :
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
Qui a l'avanage de ne pas avoir besoin des définir des niveau de sécurité spécifique, ni d'ajouter des références. Par contre, je n'ai pas réussi à adapter le code pour pouvoir intégrer des procédures, comme c'est le cas pour l'exemple proposé par Michdenis.