Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

UserForm1.Controls.Add("Forms.Label.1", titre, True)

12 réponses
Avatar
isabelle
salutatous,

je reçoit le message "Erreur d'exécution 13 : Incompatibilité de type
sur la ligne: Set lbl = UserForm1.Controls.Add("Forms.Label.1", titre,
True)
si je mets la section de création du label en commentaire
la création des combobox s'exécute normalement,
mais je n'arrive pas à voir la différence qu'il peut y avoir entre les
deux créations de controls

merci de m'éclairer à ce sujet, http://cjoint.com/?kitSzLqVnx

isabelle


Private Sub UserForm_Activate()
Dim x As Integer, i As Integer
x = 10
For i = 1 To Sheets("Feuil1").Range("IV1").End(xlToLeft).Column
titre = Sheets("Feuil1").Cells(1, i)

Dim lbl As Label
Set lbl = UserForm1.Controls.Add("Forms.Label.1", titre, True)
With lbl
.Top = x
.Left = 10
.Height = 15
.Width = 40
End With

Dim cbb As ComboBox
Set cbb = UserForm1.Controls.Add("Forms.ComboBox.1", "cmbBox", True)
With cbb
.Top = x
.Left = 70
.Height = 15
.Width = 120
ht = .Height
End With
x = x + ht + 5
Next
End Sub

10 réponses

1 2
Avatar
michdenis
Bonjour Isabelle,

Essaie comme ceci :

'-------------------------------------
Private Sub UserForm_Activate()
Dim x As Integer, i As Integer
Dim lbl As msforms.Label, cbb As msforms.ComboBox

x = 10
For i = 1 To Sheets("Feuil1").Range("IV1").End(xlToLeft).Column
titre = Sheets("Feuil1").Cells(1, i)

With UserForm1
Set cbb = .Controls.Add("Forms.ComboBox.1", "cmbBox", True)
With cbb
.Top = x
.Left = 70
.Height = 15
.Width = 120
ht = .Height
End With

Set lbl = .Controls.Add("Forms.Label.1", titre, True)
With lbl
.Top = x
.Left = 10
.Height = 15
.Width = 40
.Caption = "Isabelle_" & x
End With
End With

x = x + ht + 5
Next
End Sub
'-------------------------------------



"isabelle" a écrit dans le message de groupe de discussion :

salutatous,

je reçoit le message "Erreur d'exécution 13 : Incompatibilité de type
sur la ligne: Set lbl = UserForm1.Controls.Add("Forms.Label.1", titre,
True)
si je mets la section de création du label en commentaire
la création des combobox s'exécute normalement,
mais je n'arrive pas à voir la différence qu'il peut y avoir entre les
deux créations de controls

merci de m'éclairer à ce sujet, http://cjoint.com/?kitSzLqVnx

isabelle


Private Sub UserForm_Activate()
Dim x As Integer, i As Integer
x = 10
For i = 1 To Sheets("Feuil1").Range("IV1").End(xlToLeft).Column
titre = Sheets("Feuil1").Cells(1, i)

Dim lbl As Label
Set lbl = UserForm1.Controls.Add("Forms.Label.1", titre, True)
With lbl
.Top = x
.Left = 10
.Height = 15
.Width = 40
End With

Dim cbb As ComboBox
Set cbb = UserForm1.Controls.Add("Forms.ComboBox.1", "cmbBox", True)
With cbb
.Top = x
.Left = 70
.Height = 15
.Width = 120
ht = .Height
End With
x = x + ht + 5
Next
End Sub
Avatar
isabelle
merci Denis, c'est bien lbl As msforms.Label qui fait toute la différence
bisou*
isabelle

michdenis a écrit :
Bonjour Isabelle,

Essaie comme ceci :

'-------------------------------------
Private Sub UserForm_Activate()
Dim x As Integer, i As Integer
Dim lbl As msforms.Label, cbb As msforms.ComboBox

x = 10
For i = 1 To Sheets("Feuil1").Range("IV1").End(xlToLeft).Column
titre = Sheets("Feuil1").Cells(1, i)

With UserForm1
Set cbb = .Controls.Add("Forms.ComboBox.1", "cmbBox", True)
With cbb
.Top = x
.Left = 70
.Height = 15
.Width = 120
ht = .Height
End With

Set lbl = .Controls.Add("Forms.Label.1", titre, True)
With lbl
.Top = x
.Left = 10
.Height = 15
.Width = 40
.Caption = "Isabelle_" & x
End With
End With

x = x + ht + 5
Next
End Sub
'-------------------------------------



"isabelle" a écrit dans le message de groupe de discussion :

salutatous,

je reçoit le message "Erreur d'exécution 13 : Incompatibilité de type
sur la ligne: Set lbl = UserForm1.Controls.Add("Forms.Label.1", titre,
True)
si je mets la section de création du label en commentaire
la création des combobox s'exécute normalement,
mais je n'arrive pas à voir la différence qu'il peut y avoir entre les
deux créations de controls

merci de m'éclairer à ce sujet, http://cjoint.com/?kitSzLqVnx

isabelle


Private Sub UserForm_Activate()
Dim x As Integer, i As Integer
x = 10
For i = 1 To Sheets("Feuil1").Range("IV1").End(xlToLeft).Column
titre = Sheets("Feuil1").Cells(1, i)

Dim lbl As Label
Set lbl = UserForm1.Controls.Add("Forms.Label.1", titre, True)
With lbl
.Top = x
.Left = 10
.Height = 15
.Width = 40
End With

Dim cbb As ComboBox
Set cbb = UserForm1.Controls.Add("Forms.ComboBox.1", "cmbBox", True)
With cbb
.Top = x
.Left = 70
.Height = 15
.Width = 120
ht = .Height
End With
x = x + ht + 5
Next
End Sub




Avatar
FS
Bonsoir,

Une déclaration insuffisante pour les objets label. Remplace

Dim lbl As Label

par

Dim lbl As MSForms.Label

Conseillé aussi pour les combobox même s'il y a aussi des combobox dans
la bibliothèque d'objets d'Excel (et donc pas d'erreur à l'exécution).

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

isabelle a écrit :
salutatous,

je reçoit le message "Erreur d'exécution 13 : Incompatibilité de type
sur la ligne: Set lbl = UserForm1.Controls.Add("Forms.Label.1", titre,
True)
si je mets la section de création du label en commentaire
la création des combobox s'exécute normalement,
mais je n'arrive pas à voir la différence qu'il peut y avoir entre les
deux créations de controls

merci de m'éclairer à ce sujet, http://cjoint.com/?kitSzLqVnx

isabelle


Private Sub UserForm_Activate()
Dim x As Integer, i As Integer
x = 10
For i = 1 To Sheets("Feuil1").Range("IV1").End(xlToLeft).Column
titre = Sheets("Feuil1").Cells(1, i)

Dim lbl As Label
Set lbl = UserForm1.Controls.Add("Forms.Label.1", titre, True)
With lbl
.Top = x
.Left = 10
.Height = 15
.Width = 40
End With

Dim cbb As ComboBox
Set cbb = UserForm1.Controls.Add("Forms.ComboBox.1", "cmbBox", True)
With cbb
.Top = x
.Left = 70
.Height = 15
.Width = 120
ht = .Height
End With
x = x + ht + 5
Next
End Sub


Avatar
isabelle
merci Frédéric, je vais suivre ton conseil et toujours indiquer la
bibliothèque MSForms
ça m'évitera de chercher :-)
bisou*
*isabelle*

FS a écrit :
Bonsoir,

Une déclaration insuffisante pour les objets label. Remplace

Dim lbl As Label

par

Dim lbl As MSForms.Label

Conseillé aussi pour les combobox même s'il y a aussi des combobox
dans la bibliothèque d'objets d'Excel (et donc pas d'erreur à
l'exécution).

FS


Avatar
michdenis
Dans la boîte d'outils "Contrôle" de l'interface de calcul,
il n'y a pas de "contrôle" Label qui a été défini. On peut
cependant en ajouter un à la feuille de calcul si on utilise
le bouton "autres contrôles de la barre d'outils "contrôle.
Et tu auras tôt fait de remarquer que le contrôle est
appelé : Microsoft forms 2.0 label. Si tu l'ajoutes à la feuille
tu ajoutes la bibliothèque MsForms à ton projet VBA sans
t'en rendre compte. En fait, ce sont pour la forme les mêmes
contrôles que ceux appartenant au formulaire. Avec le
contrôle "label" dans la feuille de calcul, tu pourras même le désigner
par : Dim X As OLEObject
Set X = Feuil1.OLEObjects(1)
a = X.Name

En conséquence, si tu ne mentionnes pas expressément la
bibliothèque d'où ce "contrôle" provient, Excel est incapable
de le créer car ce contrôle n'est pas référencé et en plus il
n'appartient pas à sa bibliothèque comparativement aux autres
contrôles de la boîte d'outils "contrôle" qui doivent avoir obligatoirement
une référence même s'ils n'appartiennent pas à la bibliothèque Excel.

Par contre, tu peux créer dans un formulaire tous les autres
contrôles appartenant à la barre d'outils "contrôle" dans
un formulaire sans faire référence à la bibliothèque "MsForms".

it was my two cents !
;-)




"isabelle" a écrit dans le message de groupe de discussion :
#
merci Frédéric, je vais suivre ton conseil et toujours indiquer la
bibliothèque MSForms
ça m'évitera de chercher :-)
bisou*
*isabelle*

FS a écrit :
Bonsoir,

Une déclaration insuffisante pour les objets label. Remplace

Dim lbl As Label

par

Dim lbl As MSForms.Label

Conseillé aussi pour les combobox même s'il y a aussi des combobox
dans la bibliothèque d'objets d'Excel (et donc pas d'erreur à
l'exécution).

FS


Avatar
isabelle
salut Denis,

si si, il y a le contrôle "étiquette" mais apparemment il n'est pas
répertorier comme les autre,
là je suis à écrire le module de classe pour une classe de ccb
(combobox), hé c'est pas facile,
t'aurais pas un fichier exemple à me donner ?
isabelle

michdenis a écrit :
Dans la boîte d'outils "Contrôle" de l'interface de calcul,
il n'y a pas de "contrôle" Label qui a été défini. On peut
cependant en ajouter un à la feuille de calcul si on utilise
le bouton "autres contrôles de la barre d'outils "contrôle.
Et tu auras tôt fait de remarquer que le contrôle est
appelé : Microsoft forms 2.0 label. Si tu l'ajoutes à la feuille
tu ajoutes la bibliothèque MsForms à ton projet VBA sans
t'en rendre compte. En fait, ce sont pour la forme les mêmes
contrôles que ceux appartenant au formulaire. Avec le
contrôle "label" dans la feuille de calcul, tu pourras même le désigner
par : Dim X As OLEObject
Set X = Feuil1.OLEObjects(1)
a = X.Name

En conséquence, si tu ne mentionnes pas expressément la
bibliothèque d'où ce "contrôle" provient, Excel est incapable
de le créer car ce contrôle n'est pas référencé et en plus il
n'appartient pas à sa bibliothèque comparativement aux autres
contrôles de la boîte d'outils "contrôle" qui doivent avoir obligatoirement
une référence même s'ils n'appartiennent pas à la bibliothèque Excel.

Par contre, tu peux créer dans un formulaire tous les autres
contrôles appartenant à la barre d'outils "contrôle" dans
un formulaire sans faire référence à la bibliothèque "MsForms".

it was my two cents !
;-)




"isabelle" a écrit dans le message de groupe de discussion :
#
merci Frédéric, je vais suivre ton conseil et toujours indiquer la
bibliothèque MSForms
ça m'évitera de chercher :-)
bisou*
*isabelle*

FS a écrit :

Bonsoir,

Une déclaration insuffisante pour les objets label. Remplace

Dim lbl As Label

par

Dim lbl As MSForms.Label

Conseillé aussi pour les combobox même s'il y a aussi des combobox
dans la bibliothèque d'objets d'Excel (et donc pas d'erreur à
l'exécution).

FS







Avatar
michdenis
Un petit exemple simple : http://cjoint.com/?kixGJgqQtu

| si si, il y a le contrôle "étiquette"

ça c'est indéniable ... je l'ai vu !!!

Tu as découvert un BUG, chanceuse !
;-)
Avatar
isabelle
merci Denis,

ton exemple fonctionne bien,
ce que j'essaie de faire est de mettre tout les combobox à la même
ListIndex lorsqu'il y en a un qui change

isabelle

michdenis a écrit :
Un petit exemple simple : http://cjoint.com/?kixGJgqQtu

| si si, il y a le contrôle "étiquette"

ça c'est indéniable ... je l'ai vu !!!

Tu as découvert un BUG, chanceuse !
;-)






Avatar
michdenis
Bonjour Isabelle,

Si tu n'as pas déjà terminé, ceci pourrait t'aider :

http://cjoint.com/?kjcsHKOamp




"isabelle" a écrit dans le message de groupe de discussion :

merci Denis,

ton exemple fonctionne bien,
ce que j'essaie de faire est de mettre tout les combobox à la même
ListIndex lorsqu'il y en a un qui change

isabelle

michdenis a écrit :
Un petit exemple simple : http://cjoint.com/?kixGJgqQtu

| si si, il y a le contrôle "étiquette"

ça c'est indéniable ... je l'ai vu !!!

Tu as découvert un BUG, chanceuse !
;-)






Avatar
isabelle
un gros merci Denis, grâce à ton 1er exemple j'ai pu arriver à mes fin,
voici le résultat : http://cjoint.com/?kjsbzSPOLK

isabelle




michdenis a écrit :
Bonjour Isabelle,

Si tu n'as pas déjà terminé, ceci pourrait t'aider :

http://cjoint.com/?kjcsHKOamp




"isabelle" a écrit dans le message de groupe de discussion :

merci Denis,

ton exemple fonctionne bien,
ce que j'essaie de faire est de mettre tout les combobox à la même
ListIndex lorsqu'il y en a un qui change

isabelle

michdenis a écrit :

Un petit exemple simple : http://cjoint.com/?kixGJgqQtu

| si si, il y a le contrôle "étiquette"

ça c'est indéniable ... je l'ai vu !!!

Tu as découvert un BUG, chanceuse !
;-)









1 2