Création Combobox ActiveX via VBA
A
Bonjour,
Je créé des combobox en activeX via du VBA. Mon code marchait jusqu'à ce que j'intègre la boucle for pour alimenter ma combo. Quelqu'un peut me dire où ça coince svp?
Thanks
Sub CreateCombBox1()
Dim ws, wd As Worksheet
Dim Alim As Range
Dim i, x As Integer
Dim oTB As Object
Set ws = Worksheets("Main Menu")
Set wd = Worksheets("SYS")
Set Alim = Range("O5:O12")
Set oTB = ws.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
Link:=False, DisplayAsIcon:=False, Left:=50, Top:=80, Width:=200, _
Height:=18)
With oTB
.LinkedCell = "$N$23"
.Left = ws.Range("N15").Left
.Top = ws.Range("N15").Left
End With
i = ws.Range("O300").End(xlUp).Row
For x = 1 To i
oTB.Object.AddItem ws.Range("0" & x)
Next x
oTB.Object.Text = "Saisir un nom"
End SubSi je retire la boucle for pour un additem classique tout fonctionne
A
Bonjour,
Est ce qu'il y a plantage ?
si oui, quel code erreur sur quelle ligne ?
si non, la variable i est elle bien initialisée, quelle est sa valeur ?
qu'est ce qu' un additem classique ?
Joindre un classeur qui permettra de faire quelques tests .
A+
A
Ma seule erreur c'est une boite de dialoque avec objet non définit. Pas de lignes définie je peux que faire fin. Le but de cette macro c'est intégrer une combobox, tu as juste à créer un module et la lancer en fait pas besoin de fichier.
Sub CreateCombBox1()
Dim ws As Worksheet
Dim Alim As Range
Dim i, x As Integer
Dim oTB As Object
Set ws = Worksheets("Feuil1")
Set Alim = Range("O5:O12")
Set oTB = ws.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
Link:=False, DisplayAsIcon:=False, Left:=50, Top:=80, Width:=200, _
Height:=18)
With oTB
.LinkedCell = "$N$23"
.Left = ws.Range("N15").Left
.Top = ws.Range("N15").Left
End With
i = ws.Range("O300").End(xlUp).Row
For x = 1 To i
oTB.Object.AddItem ws.Range("0" & x)
Next x
oTB.Object.Text = "Saisir un nom"
End Sub