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

OLEObjects et Tableau

4 réponses
Avatar
Tim
Salut!

J'ai essay=E9 de faire ceci afin de mette dans une liste
d=E9roulante un ensemble de valeurs, mais apparement cela ne
fonctionne pas :(

Dim MyCombo As ComboBox
Dim Tab()

Set MyCombo =3D
ActiveSheet.OLEObjects.Add(ClassType:=3D"Forms.ComboBox.1",
Link:=3DFalse, _
DisplayAsIcon:=3DFalse, Left:=3D350.25, Top:=3D204.75,
Width:=3D186, Height:=3D _
19.5).Object

MyCombo.Name =3D "ListeTest"

cpt =3D 1
For i =3D 7 To 26
If Worksheets("Ted").Range("A" & i).Value <> Empty Then
cpt =3D cpt + 1
Tab(cpt) =3D Application.Evaluate("Ted!D" & i).Value
End If
Next i

MyCombo.List() =3D Tab

Cela doit certainement venir du Tab() ...
Si quelqu'un trouve l'erreur.
Je cherchais =E9galement comment je pourrais classer par
ordre alphab=E9tique ces valeurs justement.

Thx de l'aide !!

Tim

4 réponses

Avatar
anomymousA
bonjour,

un exemple en supposant que ton controle s'appelle toto

Dim tabl()
For i = 1 To 8
If Not IsEmpty(Cells(i, 1)) Then
ReDim Preserve tabl(cpt)
tabl(cpt) = Cells(i, 1)
cpt = cpt + 1
End If
Next

Me.toto.List = tabl

A+



Salut!

J'ai essayé de faire ceci afin de mette dans une liste
déroulante un ensemble de valeurs, mais apparement cela ne
fonctionne pas :(

Dim MyCombo As ComboBox
Dim Tab()

Set MyCombo > ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1",
Link:úlse, _
DisplayAsIcon:úlse, Left:50.25, Top: 4.75,
Width:6, Height:= _
19.5).Object

MyCombo.Name = "ListeTest"

cpt = 1
For i = 7 To 26
If Worksheets("Ted").Range("A" & i).Value <> Empty Then
cpt = cpt + 1
Tab(cpt) = Application.Evaluate("Ted!D" & i).Value
End If
Next i

MyCombo.List() = Tab

Cela doit certainement venir du Tab() ...
Si quelqu'un trouve l'erreur.
Je cherchais également comment je pourrais classer par
ordre alphabétique ces valeurs justement.

Thx de l'aide !!

Tim



Avatar
Tim
Thx ca marche

par contre il y a un prob avec
tabl(cpt) = Application.Evaluate("Ted!C" & i).Value
pour référencer la cellule "Ted!C" & i de la feuille Ted.

Au final la liste est vide :(
Avatar
Tim
Voila mon code

Dim MyCombo As OLEObject
Dim tabl()

Set MyCombo ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1",
Link:úlse, _
DisplayAsIcon:úlse, Left:65.25, Top:%8.75,
Width:&2.5, Height _
:.5)

MyCombo.Name = "CodeAg"

MsgBox "test1"
cpt = 1
For i = 7 To 26
If Worksheets("Ted").Range("C" & i).Value <> Empty Then
ReDim Preserve tabl(cpt)
tabl(cpt) = Application.Evaluate("Ted!C" & i).Value
cpt = cpt + 1
End If
Next i

MsgBox "test2"

MyCombo.List = tabl

MsgBox "test3"
Avatar
anomymousA
re,

J'ai un peu allégé ton code au passage. Evaluate n'a pas grand interet.

Dim MyCombo As OLEObject
Dim tabl()

Set MyCombo = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1",
Link:úlse, DisplayAsIcon:úlse, Left:65.25, Top:%8.75, Width:&2.5,
Height:.5)

MyCombo.Name = "CodeAg"

MsgBox "test1"
For i = 7 To 26
If Not IsEmpty(Worksheets("Ted").Cells(i, 3)) Then
ReDim Preserve tabl(cpt)
tabl(cpt) = Worksheets("Ted").Cells(i, 3).Value
cpt = cpt + 1
End If
Next i

MsgBox "test2"

MyCombo.Object.List = tabl

MsgBox "test3"

A+


Voila mon code

Dim MyCombo As OLEObject
Dim tabl()

Set MyCombo > ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1",
Link:úlse, _
DisplayAsIcon:úlse, Left:65.25, Top:%8.75,
Width:&2.5, Height _
:.5)

MyCombo.Name = "CodeAg"

MsgBox "test1"
cpt = 1
For i = 7 To 26
If Worksheets("Ted").Range("C" & i).Value <> Empty Then
ReDim Preserve tabl(cpt)
tabl(cpt) = Application.Evaluate("Ted!C" & i).Value
cpt = cpt + 1
End If
Next i

MsgBox "test2"

MyCombo.List = tabl

MsgBox "test3"