Je désire ajouter, via une macro, une TextBox. J'ai trouvé des exemples dans
la doc mais impossible de les faire fonctionner. Voici le code :
Dim tb As Control
nb = nb + 1
Set tb = Me.Controls.Add("MSForms.TextBox.1") ', "tb" & nb)
nb est une variable qui s'incrémente de 1 à chaque fois qu'on veut ajouter
une TextBox. Mais voilà, il me sort une erreur lorsque je fais le
Controls.add (Chaîne de classe incorrecte... c quoi ça ???). Je ne comprend
pas pourquoi. L'exemple était avec des CommandButton, mais ne fonctionnait
pas non plus.
Mais où est donc le problème ?
Dors et déjà merci!
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 Rekam,
En principe, si ton formulaire est ouvert et tu veux ajouter un contrôle sur ce formulaire... je te souhaite bonne chance ....;-)) habituellement, il est préférable d'ajouter tous les contrôles que l'on a besoin et de jouer sur la propriété visible de ou des objets du formulaire au moment opportun dans le code ....
Pour ajouter un bouton de commande et le code associé à ce bouton, tu copies la procédure suivante ( je crois qu'elle est de Frédéric Sigonneau) dans un module standard ...(ton formulaire ne doit pas être afficher pour exécuter cette procédure ... !
Comme d'habitude, excel est plein de chinoiseries ...
Pourquoi forms.commandbutton.1 au lieu de Msforms.commandbutton.1
L'explorateur d'objet demeure muet sur Forms ... et il en est de même pour "Designer" de la procédure
Avec une présentation aussi merdique... de l'aide de son propre logiciel, il n'est pas étonnant que tu sois un peu perdu !
'---------------------------------- 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 '----------------------------------
Salutations!
"Rekam" a écrit dans le message de news:
Bonjour!
Je désire ajouter, via une macro, une TextBox. J'ai trouvé des exemples dans la doc mais impossible de les faire fonctionner. Voici le code :
Dim tb As Control nb = nb + 1 Set tb = Me.Controls.Add("MSForms.TextBox.1") ', "tb" & nb)
nb est une variable qui s'incrémente de 1 à chaque fois qu'on veut ajouter une TextBox. Mais voilà, il me sort une erreur lorsque je fais le Controls.add (Chaîne de classe incorrecte... c quoi ça ???). Je ne comprend pas pourquoi. L'exemple était avec des CommandButton, mais ne fonctionnait pas non plus.
Mais où est donc le problème ? Dors et déjà merci!
Bonjour Rekam,
En principe, si ton formulaire est ouvert et tu veux ajouter un contrôle sur ce formulaire... je te souhaite bonne
chance ....;-)) habituellement, il est préférable d'ajouter tous les contrôles que l'on a besoin et de jouer sur la
propriété visible de ou des objets du formulaire au moment opportun dans le code ....
Pour ajouter un bouton de commande et le code associé à ce bouton, tu copies la procédure suivante ( je crois qu'elle
est de Frédéric Sigonneau) dans un module standard ...(ton formulaire ne doit pas être afficher pour exécuter cette
procédure ... !
Comme d'habitude, excel est plein de chinoiseries ...
Pourquoi forms.commandbutton.1 au lieu de Msforms.commandbutton.1
L'explorateur d'objet demeure muet sur Forms ... et il en est de même pour "Designer" de la procédure
Avec une présentation aussi merdique... de l'aide de son propre logiciel, il n'est pas étonnant que tu sois un peu perdu
!
'----------------------------------
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
'----------------------------------
Salutations!
"Rekam" <Rekam@discussions.microsoft.com> a écrit dans le message de news:
0FCA5EBE-1DC9-41B5-9DAD-3D163B68F1FE@microsoft.com...
Bonjour!
Je désire ajouter, via une macro, une TextBox. J'ai trouvé des exemples dans
la doc mais impossible de les faire fonctionner. Voici le code :
Dim tb As Control
nb = nb + 1
Set tb = Me.Controls.Add("MSForms.TextBox.1") ', "tb" & nb)
nb est une variable qui s'incrémente de 1 à chaque fois qu'on veut ajouter
une TextBox. Mais voilà, il me sort une erreur lorsque je fais le
Controls.add (Chaîne de classe incorrecte... c quoi ça ???). Je ne comprend
pas pourquoi. L'exemple était avec des CommandButton, mais ne fonctionnait
pas non plus.
Mais où est donc le problème ?
Dors et déjà merci!
En principe, si ton formulaire est ouvert et tu veux ajouter un contrôle sur ce formulaire... je te souhaite bonne chance ....;-)) habituellement, il est préférable d'ajouter tous les contrôles que l'on a besoin et de jouer sur la propriété visible de ou des objets du formulaire au moment opportun dans le code ....
Pour ajouter un bouton de commande et le code associé à ce bouton, tu copies la procédure suivante ( je crois qu'elle est de Frédéric Sigonneau) dans un module standard ...(ton formulaire ne doit pas être afficher pour exécuter cette procédure ... !
Comme d'habitude, excel est plein de chinoiseries ...
Pourquoi forms.commandbutton.1 au lieu de Msforms.commandbutton.1
L'explorateur d'objet demeure muet sur Forms ... et il en est de même pour "Designer" de la procédure
Avec une présentation aussi merdique... de l'aide de son propre logiciel, il n'est pas étonnant que tu sois un peu perdu !
'---------------------------------- 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 '----------------------------------
Salutations!
"Rekam" a écrit dans le message de news:
Bonjour!
Je désire ajouter, via une macro, une TextBox. J'ai trouvé des exemples dans la doc mais impossible de les faire fonctionner. Voici le code :
Dim tb As Control nb = nb + 1 Set tb = Me.Controls.Add("MSForms.TextBox.1") ', "tb" & nb)
nb est une variable qui s'incrémente de 1 à chaque fois qu'on veut ajouter une TextBox. Mais voilà, il me sort une erreur lorsque je fais le Controls.add (Chaîne de classe incorrecte... c quoi ça ???). Je ne comprend pas pourquoi. L'exemple était avec des CommandButton, mais ne fonctionnait pas non plus.
Mais où est donc le problème ? Dors et déjà merci!
papou
Bonjour En complément de la réponse précédente Tu n'étais pas si loin ! Me.Controls.Add "forms.textbox.1", "tb" & nb
En revanche, il faut intégrer un positionnement de chaque contrôle sinon ils seront superposés les uns sur les autres. Cordialement Pascal
"Rekam" a écrit dans le message de news:
Bonjour!
Je désire ajouter, via une macro, une TextBox. J'ai trouvé des exemples dans la doc mais impossible de les faire fonctionner. Voici le code :
Dim tb As Control nb = nb + 1 Set tb = Me.Controls.Add("MSForms.TextBox.1") ', "tb" & nb)
nb est une variable qui s'incrémente de 1 à chaque fois qu'on veut ajouter une TextBox. Mais voilà, il me sort une erreur lorsque je fais le Controls.add (Chaîne de classe incorrecte... c quoi ça ???). Je ne comprend pas pourquoi. L'exemple était avec des CommandButton, mais ne fonctionnait pas non plus.
Mais où est donc le problème ? Dors et déjà merci!
Bonjour
En complément de la réponse précédente
Tu n'étais pas si loin !
Me.Controls.Add "forms.textbox.1", "tb" & nb
En revanche, il faut intégrer un positionnement de chaque contrôle sinon ils
seront superposés les uns sur les autres.
Cordialement
Pascal
"Rekam" <Rekam@discussions.microsoft.com> a écrit dans le message de news:
0FCA5EBE-1DC9-41B5-9DAD-3D163B68F1FE@microsoft.com...
Bonjour!
Je désire ajouter, via une macro, une TextBox. J'ai trouvé des exemples
dans
la doc mais impossible de les faire fonctionner. Voici le code :
Dim tb As Control
nb = nb + 1
Set tb = Me.Controls.Add("MSForms.TextBox.1") ', "tb" & nb)
nb est une variable qui s'incrémente de 1 à chaque fois qu'on veut ajouter
une TextBox. Mais voilà, il me sort une erreur lorsque je fais le
Controls.add (Chaîne de classe incorrecte... c quoi ça ???). Je ne
comprend
pas pourquoi. L'exemple était avec des CommandButton, mais ne fonctionnait
pas non plus.
Mais où est donc le problème ?
Dors et déjà merci!
Bonjour En complément de la réponse précédente Tu n'étais pas si loin ! Me.Controls.Add "forms.textbox.1", "tb" & nb
En revanche, il faut intégrer un positionnement de chaque contrôle sinon ils seront superposés les uns sur les autres. Cordialement Pascal
"Rekam" a écrit dans le message de news:
Bonjour!
Je désire ajouter, via une macro, une TextBox. J'ai trouvé des exemples dans la doc mais impossible de les faire fonctionner. Voici le code :
Dim tb As Control nb = nb + 1 Set tb = Me.Controls.Add("MSForms.TextBox.1") ', "tb" & nb)
nb est une variable qui s'incrémente de 1 à chaque fois qu'on veut ajouter une TextBox. Mais voilà, il me sort une erreur lorsque je fais le Controls.add (Chaîne de classe incorrecte... c quoi ça ???). Je ne comprend pas pourquoi. L'exemple était avec des CommandButton, mais ne fonctionnait pas non plus.
Mais où est donc le problème ? Dors et déjà merci!