XL 2010 Problème alimentation tableau 2 dimensions

etpisculrien

XLDnaute Occasionnel
Bonjour à tous,

J'ai beau essayer mais je bug total et j'aurais besoin de vous svp.
Je souhaite alimenter un tableau à 2 dimensions avec des items d'un menu déroulant mais ça bloque après que le premier élément ait été intégré :(

Voici mon code (désolé, c'est pas très beau à voir, je sais)
-----------------------------------------------------------------------------
Private Sub TextBox1_Change()
tmp = UCase(Me.TextBox1) & "*"

Dim TabNumAff() As String
j = 0

Dim i As Integer

ReDim TabNumAff(j, 1)
For i = 0 To Me.ListBox1.ListCount - 1

If UCase(Me.ListBox1.Column(0, i)) Like tmp Then
ReDim Preserve TabNumAff(j, 1)
TabNumAff(j, 0) = UCase(Me.ListBox1.Column(0, i))
TabNumAff(j, 1) = UCase(Me.ListBox1.Column(1, i))

j = j + 1
End If

Next i

Me.ListBox1.Clear
Me.ListBox1.List = TabNumAff
End Sub
--------------------------------------------------------------------------------

Merci par avance de votre aide :)
 

etpisculrien

XLDnaute Occasionnel
Bonjour à tous,

J'ai beau essayer mais je bug total et j'aurais besoin de vous svp.
Je souhaite alimenter un tableau à 2 dimensions avec des items d'un menu déroulant mais ça bloque après que le premier élément ait été intégré :(

Voici mon code (désolé, c'est pas très beau à voir, je sais)
-----------------------------------------------------------------------------
Private Sub TextBox1_Change()
tmp = UCase(Me.TextBox1) & "*"

Dim TabNumAff() As String
j = 0

Dim i As Integer

ReDim TabNumAff(j, 1)
For i = 0 To Me.ListBox1.ListCount - 1

If UCase(Me.ListBox1.Column(0, i)) Like tmp Then
ReDim Preserve TabNumAff(j, 1)
TabNumAff(j, 0) = UCase(Me.ListBox1.Column(0, i))
TabNumAff(j, 1) = UCase(Me.ListBox1.Column(1, i))

j = j + 1
End If

Next i

Me.ListBox1.Clear
Me.ListBox1.List = TabNumAff
End Sub
--------------------------------------------------------------------------------

Merci par avance de votre aide :)
Et si personne ne comprend mon message, n'hésitez pas à me dire...
 

etpisculrien

XLDnaute Occasionnel
Bon ben laissez tomber, j'ai trouvé comment faire...
Le problème venait du dimensionnement du tableau du coup j'ai fait comme ça :

Private Sub TextBox1_Change()
Me.ListBox1.List = NumAff
tmp = UCase(Me.TextBox1) & "*"

Dim TabNumAff() As Variant
'j = 0

Dim i As Integer
Dim j As Integer

x = 0
For i = 0 To Me.ListBox1.ListCount - 1
If UCase(Me.ListBox1.Column(0, i)) Like tmp Then x = x + 1
Next i

ReDim TabNumAff(x, 1)

For i = 0 To Me.ListBox1.ListCount - 1
If UCase(Me.ListBox1.Column(0, i)) Like tmp Then
TabNumAff(j, 0) = UCase(Me.ListBox1.Column(0, i))
TabNumAff(j, 1) = UCase(Me.ListBox1.Column(1, i))
j = j + 1
End If
Next i
Me.ListBox1.Clear
Me.ListBox1.List = TabNumAff

End Sub

Si ça peut servir à quelqu'un.

Merci quand même :)
 
Haut Bas