OVH Cloud OVH Cloud

Erreur 13 : incompatibilité de type

16 réponses
Avatar
Linebaker
Bonjour à vous tous,

Dans le code qui suit, j'ai une erreur que je ne sais comment corriger.
Est-ce que quelqu'un peut m'aider ?

Option Explicit
Option Compare Text
Private TabPlage As Variant


Private Sub UserForm_Initialize()
Dim i As Integer
Dim ColBase1 As New Collection
Dim Item As Variant
Dim X As Byte

For X = 1 To 3
Me.Controls("ComboBox" & X).Style = fmStyleDropDownList
Next

With Sheets("Feuil1")
TabPlage = .Range("A2:C" & .Range("A65536").End(xlUp).Row)
End With

On Error Resume Next
For i = 1 To UBound(TabPlage)
ColBase1.Add TabPlage(i, 1), TabPlage(i, 1)
Next
On Error GoTo 0

For Each Item In ColBase1
Me.ComboBox1.AddItem Item
Next

End Sub

Private Sub ComboBox1_Change()
ComboBoxing 2
End Sub


Private Sub ComboBox2_Change()
ComboBoxing 3
End Sub


Private Sub ComboBox3_Change()
Dim L As Integer
Dim tabtemp As Variant

With Worksheets("Feuil1")
L = .Range("a15000").End(xlUp).Row
tabtemp = .Range("A2:K" & L).Value
End With

For L = 1 To UBound(tabtemp, 1) 'l'erreur 13 se trouve ici
If tabtemp(L, 1) = CLng(ComboBox3.Value) Then
ListBox1.AddItem tabtemp(L, 1)
ListBox2.AddItem tabtemp(L, 2)
ListBox3.AddItem tabtemp(L, 3)
ListBox4.AddItem tabtemp(L, 4)
ListBox5.AddItem tabtemp(L, 8)
ListBox6.AddItem tabtemp(L, 6)
ListBox7.AddItem tabtemp(L, 7)
ListBox8.AddItem tabtemp(L, 5)
End If
Next L

End Sub


Private Sub ComboBoxing(Num As Byte)
Dim i As Integer
Dim ColBaseX As New Collection
Dim Item As Variant
Dim X As Byte

For X = Num To 3
Me.Controls("ComboBox" & X).Clear
Next

On Error Resume Next
For i = 1 To UBound(TabPlage)
If CStr(TabPlage(i, Num - 1)) = CStr(Me.Controls("ComboBox" & Num -
1)) Then
ColBaseX.Add TabPlage(i, Num), CStr(TabPlage(i, Num))
End If
Next
On Error GoTo 0

For Each Item In ColBaseX
Me.Controls("ComboBox" & Num).AddItem Item
Next
End Sub

Merci

6 réponses

1 2
Avatar
Linebaker
Bonjour Michel,

Oui j'ai toujours le même message d'erreur.

Je suis avec Excel 2003.

Merci

"michdenis" a écrit dans le message de news:

Bonjour LineBaker,

Quel est ta version d'excel. Sous excel 2003, ton code est bon.

Il doit y avoir un problème entre la déclaration de ta variable. J'ai
souvenir qu'excel se comporte différemment selon les versions
dans les déclarations des tableaux ou des variables "as variant"
Dim tabtemp As Variant

et cette ligne de code juste au dessus ...
tabtemp = .Range("A2:K" & L).Value

Essaie ta procédure mais sans définir le type à ta Variable , en utilisant
ces 2 lignes de code. As-tu toujours un message d'erreur
?

Dim tabtemp
tabtemp = .Range("A2:K" & L)


Salutations




"Linebaker" a écrit dans le message de news:
BqtKe.77784$
Bonjour à vous tous,

Dans le code qui suit, j'ai une erreur que je ne sais comment corriger.
Est-ce que quelqu'un peut m'aider ?

Option Explicit
Option Compare Text
Private TabPlage As Variant


Private Sub UserForm_Initialize()
Dim i As Integer
Dim ColBase1 As New Collection
Dim Item As Variant
Dim X As Byte

For X = 1 To 3
Me.Controls("ComboBox" & X).Style = fmStyleDropDownList
Next

With Sheets("Feuil1")
TabPlage = .Range("A2:C" & .Range("A65536").End(xlUp).Row)
End With

On Error Resume Next
For i = 1 To UBound(TabPlage)
ColBase1.Add TabPlage(i, 1), TabPlage(i, 1)
Next
On Error GoTo 0

For Each Item In ColBase1
Me.ComboBox1.AddItem Item
Next

End Sub

Private Sub ComboBox1_Change()
ComboBoxing 2
End Sub


Private Sub ComboBox2_Change()
ComboBoxing 3
End Sub


Private Sub ComboBox3_Change()
Dim L As Integer
Dim tabtemp As Variant

With Worksheets("Feuil1")
L = .Range("a15000").End(xlUp).Row
tabtemp = .Range("A2:K" & L).Value
End With

For L = 1 To UBound(tabtemp, 1) 'l'erreur 13 se trouve ici
If tabtemp(L, 1) = CLng(ComboBox3.Value) Then
ListBox1.AddItem tabtemp(L, 1)
ListBox2.AddItem tabtemp(L, 2)
ListBox3.AddItem tabtemp(L, 3)
ListBox4.AddItem tabtemp(L, 4)
ListBox5.AddItem tabtemp(L, 8)
ListBox6.AddItem tabtemp(L, 6)
ListBox7.AddItem tabtemp(L, 7)
ListBox8.AddItem tabtemp(L, 5)
End If
Next L

End Sub


Private Sub ComboBoxing(Num As Byte)
Dim i As Integer
Dim ColBaseX As New Collection
Dim Item As Variant
Dim X As Byte

For X = Num To 3
Me.Controls("ComboBox" & X).Clear
Next

On Error Resume Next
For i = 1 To UBound(TabPlage)
If CStr(TabPlage(i, Num - 1)) = CStr(Me.Controls("ComboBox" & Num -
1)) Then
ColBaseX.Add TabPlage(i, Num), CStr(TabPlage(i, Num))
End If
Next
On Error GoTo 0

For Each Item In ColBaseX
Me.Controls("ComboBox" & Num).AddItem Item
Next
End Sub

Merci





Avatar
michdenis
Bonsoir LineBaker,

Est-ce que ce petit exemple génère une erreur chez toi, c'est l'équivalent de ton code !

'-------------------------------
Sub Test()

Dim B As Variant
Dim L As Integer
Dim tabtemp As Variant
L = Range("a15000").End(xlUp).Row
tabtemp = Range("A2:K" & L).Value
For L = 1 To UBound(tabtemp, 1)
B = tabtemp(L, 1)
Next
End Sub
'-------------------------------


Salutations!



"Linebaker" a écrit dans le message de news: sKvKe.32311$
Bonjour Michel,

Oui j'ai toujours le même message d'erreur.

Je suis avec Excel 2003.

Merci

"michdenis" a écrit dans le message de news:

Bonjour LineBaker,

Quel est ta version d'excel. Sous excel 2003, ton code est bon.

Il doit y avoir un problème entre la déclaration de ta variable. J'ai
souvenir qu'excel se comporte différemment selon les versions
dans les déclarations des tableaux ou des variables "as variant"
Dim tabtemp As Variant

et cette ligne de code juste au dessus ...
tabtemp = .Range("A2:K" & L).Value

Essaie ta procédure mais sans définir le type à ta Variable , en utilisant
ces 2 lignes de code. As-tu toujours un message d'erreur
?

Dim tabtemp
tabtemp = .Range("A2:K" & L)


Salutations




"Linebaker" a écrit dans le message de news:
BqtKe.77784$
Bonjour à vous tous,

Dans le code qui suit, j'ai une erreur que je ne sais comment corriger.
Est-ce que quelqu'un peut m'aider ?

Option Explicit
Option Compare Text
Private TabPlage As Variant


Private Sub UserForm_Initialize()
Dim i As Integer
Dim ColBase1 As New Collection
Dim Item As Variant
Dim X As Byte

For X = 1 To 3
Me.Controls("ComboBox" & X).Style = fmStyleDropDownList
Next

With Sheets("Feuil1")
TabPlage = .Range("A2:C" & .Range("A65536").End(xlUp).Row)
End With

On Error Resume Next
For i = 1 To UBound(TabPlage)
ColBase1.Add TabPlage(i, 1), TabPlage(i, 1)
Next
On Error GoTo 0

For Each Item In ColBase1
Me.ComboBox1.AddItem Item
Next

End Sub

Private Sub ComboBox1_Change()
ComboBoxing 2
End Sub


Private Sub ComboBox2_Change()
ComboBoxing 3
End Sub


Private Sub ComboBox3_Change()
Dim L As Integer
Dim tabtemp As Variant

With Worksheets("Feuil1")
L = .Range("a15000").End(xlUp).Row
tabtemp = .Range("A2:K" & L).Value
End With

For L = 1 To UBound(tabtemp, 1) 'l'erreur 13 se trouve ici
If tabtemp(L, 1) = CLng(ComboBox3.Value) Then
ListBox1.AddItem tabtemp(L, 1)
ListBox2.AddItem tabtemp(L, 2)
ListBox3.AddItem tabtemp(L, 3)
ListBox4.AddItem tabtemp(L, 4)
ListBox5.AddItem tabtemp(L, 8)
ListBox6.AddItem tabtemp(L, 6)
ListBox7.AddItem tabtemp(L, 7)
ListBox8.AddItem tabtemp(L, 5)
End If
Next L

End Sub


Private Sub ComboBoxing(Num As Byte)
Dim i As Integer
Dim ColBaseX As New Collection
Dim Item As Variant
Dim X As Byte

For X = Num To 3
Me.Controls("ComboBox" & X).Clear
Next

On Error Resume Next
For i = 1 To UBound(TabPlage)
If CStr(TabPlage(i, Num - 1)) = CStr(Me.Controls("ComboBox" & Num -
1)) Then
ColBaseX.Add TabPlage(i, Num), CStr(TabPlage(i, Num))
End If
Next
On Error GoTo 0

For Each Item In ColBaseX
Me.Controls("ComboBox" & Num).AddItem Item
Next
End Sub

Merci





Avatar
Linebaker
BINGO

Ça fonctionne sans message d'erreur.

Si j'ai bien compris tu as rajouté une ligne (B = tabtemp(L, 1)) ?

MERCI

"michdenis" a écrit dans le message de news:

Bonsoir LineBaker,

Est-ce que ce petit exemple génère une erreur chez toi, c'est l'équivalent
de ton code !

'-------------------------------
Sub Test()

Dim B As Variant
Dim L As Integer
Dim tabtemp As Variant
L = Range("a15000").End(xlUp).Row
tabtemp = Range("A2:K" & L).Value
For L = 1 To UBound(tabtemp, 1)
B = tabtemp(L, 1)
Next
End Sub
'-------------------------------


Salutations!



"Linebaker" a écrit dans le message de news:
sKvKe.32311$
Bonjour Michel,

Oui j'ai toujours le même message d'erreur.

Je suis avec Excel 2003.

Merci

"michdenis" a écrit dans le message de news:

Bonjour LineBaker,

Quel est ta version d'excel. Sous excel 2003, ton code est bon.

Il doit y avoir un problème entre la déclaration de ta variable. J'ai
souvenir qu'excel se comporte différemment selon les versions
dans les déclarations des tableaux ou des variables "as variant"
Dim tabtemp As Variant

et cette ligne de code juste au dessus ...
tabtemp = .Range("A2:K" & L).Value

Essaie ta procédure mais sans définir le type à ta Variable , en
utilisant
ces 2 lignes de code. As-tu toujours un message d'erreur
?

Dim tabtemp
tabtemp = .Range("A2:K" & L)


Salutations




"Linebaker" a écrit dans le message de news:
BqtKe.77784$
Bonjour à vous tous,

Dans le code qui suit, j'ai une erreur que je ne sais comment corriger.
Est-ce que quelqu'un peut m'aider ?

Option Explicit
Option Compare Text
Private TabPlage As Variant


Private Sub UserForm_Initialize()
Dim i As Integer
Dim ColBase1 As New Collection
Dim Item As Variant
Dim X As Byte

For X = 1 To 3
Me.Controls("ComboBox" & X).Style = fmStyleDropDownList
Next

With Sheets("Feuil1")
TabPlage = .Range("A2:C" & .Range("A65536").End(xlUp).Row)
End With

On Error Resume Next
For i = 1 To UBound(TabPlage)
ColBase1.Add TabPlage(i, 1), TabPlage(i, 1)
Next
On Error GoTo 0

For Each Item In ColBase1
Me.ComboBox1.AddItem Item
Next

End Sub

Private Sub ComboBox1_Change()
ComboBoxing 2
End Sub


Private Sub ComboBox2_Change()
ComboBoxing 3
End Sub


Private Sub ComboBox3_Change()
Dim L As Integer
Dim tabtemp As Variant

With Worksheets("Feuil1")
L = .Range("a15000").End(xlUp).Row
tabtemp = .Range("A2:K" & L).Value
End With

For L = 1 To UBound(tabtemp, 1) 'l'erreur 13 se trouve ici
If tabtemp(L, 1) = CLng(ComboBox3.Value) Then
ListBox1.AddItem tabtemp(L, 1)
ListBox2.AddItem tabtemp(L, 2)
ListBox3.AddItem tabtemp(L, 3)
ListBox4.AddItem tabtemp(L, 4)
ListBox5.AddItem tabtemp(L, 8)
ListBox6.AddItem tabtemp(L, 6)
ListBox7.AddItem tabtemp(L, 7)
ListBox8.AddItem tabtemp(L, 5)
End If
Next L

End Sub


Private Sub ComboBoxing(Num As Byte)
Dim i As Integer
Dim ColBaseX As New Collection
Dim Item As Variant
Dim X As Byte

For X = Num To 3
Me.Controls("ComboBox" & X).Clear
Next

On Error Resume Next
For i = 1 To UBound(TabPlage)
If CStr(TabPlage(i, Num - 1)) = CStr(Me.Controls("ComboBox" &
Num -
1)) Then
ColBaseX.Add TabPlage(i, Num), CStr(TabPlage(i, Num))
End If
Next
On Error GoTo 0

For Each Item In ColBaseX
Me.Controls("ComboBox" & Num).AddItem Item
Next
End Sub

Merci










Avatar
michdenis
Bonsoir LineBaker,

| Si j'ai bien compris tu as rajouté une ligne (B = tabtemp(L, 1))

Cette ligne était simplement pour compléter mon exemple...

ce sont les lignes suivantes qui sont identiques à ta problématique :

Dim L As Integer
Dim tabtemp As Variant
L = Range("a15000").End(xlUp).Row
tabtemp = Range("A2:K" & L).Value
For L = 1 To UBound(tabtemp, 1)


Et pourtant, cela ne génère aucune erreur chez moi ! Pourquoi en est-il autrement chez toi ? Énigme !


Salutations!


"Linebaker" a écrit dans le message de news: oawKe.33145$
BINGO

Ça fonctionne sans message d'erreur.

Si j'ai bien compris tu as rajouté une ligne (B = tabtemp(L, 1)) ?

MERCI

"michdenis" a écrit dans le message de news:

Bonsoir LineBaker,

Est-ce que ce petit exemple génère une erreur chez toi, c'est l'équivalent
de ton code !

'-------------------------------
Sub Test()

Dim B As Variant
Dim L As Integer
Dim tabtemp As Variant
L = Range("a15000").End(xlUp).Row
tabtemp = Range("A2:K" & L).Value
For L = 1 To UBound(tabtemp, 1)
B = tabtemp(L, 1)
Next
End Sub
'-------------------------------


Salutations!



"Linebaker" a écrit dans le message de news:
sKvKe.32311$
Bonjour Michel,

Oui j'ai toujours le même message d'erreur.

Je suis avec Excel 2003.

Merci

"michdenis" a écrit dans le message de news:

Bonjour LineBaker,

Quel est ta version d'excel. Sous excel 2003, ton code est bon.

Il doit y avoir un problème entre la déclaration de ta variable. J'ai
souvenir qu'excel se comporte différemment selon les versions
dans les déclarations des tableaux ou des variables "as variant"
Dim tabtemp As Variant

et cette ligne de code juste au dessus ...
tabtemp = .Range("A2:K" & L).Value

Essaie ta procédure mais sans définir le type à ta Variable , en
utilisant
ces 2 lignes de code. As-tu toujours un message d'erreur
?

Dim tabtemp
tabtemp = .Range("A2:K" & L)


Salutations




"Linebaker" a écrit dans le message de news:
BqtKe.77784$
Bonjour à vous tous,

Dans le code qui suit, j'ai une erreur que je ne sais comment corriger.
Est-ce que quelqu'un peut m'aider ?

Option Explicit
Option Compare Text
Private TabPlage As Variant


Private Sub UserForm_Initialize()
Dim i As Integer
Dim ColBase1 As New Collection
Dim Item As Variant
Dim X As Byte

For X = 1 To 3
Me.Controls("ComboBox" & X).Style = fmStyleDropDownList
Next

With Sheets("Feuil1")
TabPlage = .Range("A2:C" & .Range("A65536").End(xlUp).Row)
End With

On Error Resume Next
For i = 1 To UBound(TabPlage)
ColBase1.Add TabPlage(i, 1), TabPlage(i, 1)
Next
On Error GoTo 0

For Each Item In ColBase1
Me.ComboBox1.AddItem Item
Next

End Sub

Private Sub ComboBox1_Change()
ComboBoxing 2
End Sub


Private Sub ComboBox2_Change()
ComboBoxing 3
End Sub


Private Sub ComboBox3_Change()
Dim L As Integer
Dim tabtemp As Variant

With Worksheets("Feuil1")
L = .Range("a15000").End(xlUp).Row
tabtemp = .Range("A2:K" & L).Value
End With

For L = 1 To UBound(tabtemp, 1) 'l'erreur 13 se trouve ici
If tabtemp(L, 1) = CLng(ComboBox3.Value) Then
ListBox1.AddItem tabtemp(L, 1)
ListBox2.AddItem tabtemp(L, 2)
ListBox3.AddItem tabtemp(L, 3)
ListBox4.AddItem tabtemp(L, 4)
ListBox5.AddItem tabtemp(L, 8)
ListBox6.AddItem tabtemp(L, 6)
ListBox7.AddItem tabtemp(L, 7)
ListBox8.AddItem tabtemp(L, 5)
End If
Next L

End Sub


Private Sub ComboBoxing(Num As Byte)
Dim i As Integer
Dim ColBaseX As New Collection
Dim Item As Variant
Dim X As Byte

For X = Num To 3
Me.Controls("ComboBox" & X).Clear
Next

On Error Resume Next
For i = 1 To UBound(TabPlage)
If CStr(TabPlage(i, Num - 1)) = CStr(Me.Controls("ComboBox" &
Num -
1)) Then
ColBaseX.Add TabPlage(i, Num), CStr(TabPlage(i, Num))
End If
Next
On Error GoTo 0

For Each Item In ColBaseX
Me.Controls("ComboBox" & Num).AddItem Item
Next
End Sub

Merci










Avatar
jps
l'est malin, notre michel, linebaker...et avec l'autre (MPi), l'aide
t'arrive droit du québec
jps

"Linebaker" a écrit dans le message de news:
oawKe.33145$
BINGO

Ça fonctionne sans message d'erreur.

Si j'ai bien compris tu as rajouté une ligne (B = tabtemp(L, 1)) ?

MERCI

"michdenis" a écrit dans le message de news:

Bonsoir LineBaker,

Est-ce que ce petit exemple génère une erreur chez toi, c'est
l'équivalent de ton code !

'-------------------------------
Sub Test()

Dim B As Variant
Dim L As Integer
Dim tabtemp As Variant
L = Range("a15000").End(xlUp).Row
tabtemp = Range("A2:K" & L).Value
For L = 1 To UBound(tabtemp, 1)
B = tabtemp(L, 1)
Next
End Sub
'-------------------------------


Salutations!



"Linebaker" a écrit dans le message de news:
sKvKe.32311$
Bonjour Michel,

Oui j'ai toujours le même message d'erreur.

Je suis avec Excel 2003.

Merci

"michdenis" a écrit dans le message de news:

Bonjour LineBaker,

Quel est ta version d'excel. Sous excel 2003, ton code est bon.

Il doit y avoir un problème entre la déclaration de ta variable. J'ai
souvenir qu'excel se comporte différemment selon les versions
dans les déclarations des tableaux ou des variables "as variant"
Dim tabtemp As Variant

et cette ligne de code juste au dessus ...
tabtemp = .Range("A2:K" & L).Value

Essaie ta procédure mais sans définir le type à ta Variable , en
utilisant
ces 2 lignes de code. As-tu toujours un message d'erreur
?

Dim tabtemp
tabtemp = .Range("A2:K" & L)


Salutations




"Linebaker" a écrit dans le message de news:
BqtKe.77784$
Bonjour à vous tous,

Dans le code qui suit, j'ai une erreur que je ne sais comment corriger.
Est-ce que quelqu'un peut m'aider ?

Option Explicit
Option Compare Text
Private TabPlage As Variant


Private Sub UserForm_Initialize()
Dim i As Integer
Dim ColBase1 As New Collection
Dim Item As Variant
Dim X As Byte

For X = 1 To 3
Me.Controls("ComboBox" & X).Style = fmStyleDropDownList
Next

With Sheets("Feuil1")
TabPlage = .Range("A2:C" & .Range("A65536").End(xlUp).Row)
End With

On Error Resume Next
For i = 1 To UBound(TabPlage)
ColBase1.Add TabPlage(i, 1), TabPlage(i, 1)
Next
On Error GoTo 0

For Each Item In ColBase1
Me.ComboBox1.AddItem Item
Next

End Sub

Private Sub ComboBox1_Change()
ComboBoxing 2
End Sub


Private Sub ComboBox2_Change()
ComboBoxing 3
End Sub


Private Sub ComboBox3_Change()
Dim L As Integer
Dim tabtemp As Variant

With Worksheets("Feuil1")
L = .Range("a15000").End(xlUp).Row
tabtemp = .Range("A2:K" & L).Value
End With

For L = 1 To UBound(tabtemp, 1) 'l'erreur 13 se trouve ici
If tabtemp(L, 1) = CLng(ComboBox3.Value) Then
ListBox1.AddItem tabtemp(L, 1)
ListBox2.AddItem tabtemp(L, 2)
ListBox3.AddItem tabtemp(L, 3)
ListBox4.AddItem tabtemp(L, 4)
ListBox5.AddItem tabtemp(L, 8)
ListBox6.AddItem tabtemp(L, 6)
ListBox7.AddItem tabtemp(L, 7)
ListBox8.AddItem tabtemp(L, 5)
End If
Next L

End Sub


Private Sub ComboBoxing(Num As Byte)
Dim i As Integer
Dim ColBaseX As New Collection
Dim Item As Variant
Dim X As Byte

For X = Num To 3
Me.Controls("ComboBox" & X).Clear
Next

On Error Resume Next
For i = 1 To UBound(TabPlage)
If CStr(TabPlage(i, Num - 1)) = CStr(Me.Controls("ComboBox" &
Num -
1)) Then
ColBaseX.Add TabPlage(i, Num), CStr(TabPlage(i, Num))
End If
Next
On Error GoTo 0

For Each Item In ColBaseX
Me.Controls("ComboBox" & Num).AddItem Item
Next
End Sub

Merci














Avatar
michdenis
Bonjour JPS,

Oui, oui, il est malin M. Linebaker,

Il est allé voir le pendant anglophone du MPFE ou un certain Jim lui a répondu d'utiliser un objet range plutôt qu'un tableau.

Voici la réponse obtenue pour le bénéfice de ceux qui suivaient ce fil :

P.S. selon moi, cette réponse n'explique en rien la source de la difficulté que Linebaker avait avec sa procédure.. on lui a suggéré
de changer d'outils !!!! La prochaine fois que ton véhicule automobile fait défaut, JPS, ne le répare pas, change-le !

;-)))

'******************
tabtemp is not an array it is a range object (A Group of 1 or more cells) try
something more like this... Par Jim Thomlinson

dim rngToSearch as range
dim rngCurrent as range

set rngToSearch = range(sheets("Sheet1").Range("A2"), _
sheets("Sheet1").Range("A65536").End(xlUP))

for each rngCurrent in rngToSearch
If rngCurrent.Value = CLng(ComboBox3.Value) Then
ListBox1.AddItem rngCurrent.Value
ListBox2.AddItem rngCurrent.Offset(0,1).Value
ListBox3.AddItem rngCurrent.Offset(0,2).Value
ListBox4.AddItem rngCurrent.Offset(0,3).Value
ListBox5.AddItem rngCurrent.Offset(0,7).Value
ListBox6.AddItem rngCurrent.Offset(0,5).Value
ListBox7.AddItem rngCurrent.Offset(0,6).Value
ListBox8.AddItem rngCurrent.Offset(0,4).Value
End If

Next rngCurrent
'******************


Salutations!





"jps" a écrit dans le message de news: %
l'est malin, notre michel, linebaker...et avec l'autre (MPi), l'aide
t'arrive droit du québec
jps

"Linebaker" a écrit dans le message de news:
oawKe.33145$
BINGO

Ça fonctionne sans message d'erreur.

Si j'ai bien compris tu as rajouté une ligne (B = tabtemp(L, 1)) ?

MERCI

"michdenis" a écrit dans le message de news:

Bonsoir LineBaker,

Est-ce que ce petit exemple génère une erreur chez toi, c'est
l'équivalent de ton code !

'-------------------------------
Sub Test()

Dim B As Variant
Dim L As Integer
Dim tabtemp As Variant
L = Range("a15000").End(xlUp).Row
tabtemp = Range("A2:K" & L).Value
For L = 1 To UBound(tabtemp, 1)
B = tabtemp(L, 1)
Next
End Sub
'-------------------------------


Salutations!



"Linebaker" a écrit dans le message de news:
sKvKe.32311$
Bonjour Michel,

Oui j'ai toujours le même message d'erreur.

Je suis avec Excel 2003.

Merci

"michdenis" a écrit dans le message de news:

Bonjour LineBaker,

Quel est ta version d'excel. Sous excel 2003, ton code est bon.

Il doit y avoir un problème entre la déclaration de ta variable. J'ai
souvenir qu'excel se comporte différemment selon les versions
dans les déclarations des tableaux ou des variables "as variant"
Dim tabtemp As Variant

et cette ligne de code juste au dessus ...
tabtemp = .Range("A2:K" & L).Value

Essaie ta procédure mais sans définir le type à ta Variable , en
utilisant
ces 2 lignes de code. As-tu toujours un message d'erreur
?

Dim tabtemp
tabtemp = .Range("A2:K" & L)


Salutations




"Linebaker" a écrit dans le message de news:
BqtKe.77784$
Bonjour à vous tous,

Dans le code qui suit, j'ai une erreur que je ne sais comment corriger.
Est-ce que quelqu'un peut m'aider ?

Option Explicit
Option Compare Text
Private TabPlage As Variant


Private Sub UserForm_Initialize()
Dim i As Integer
Dim ColBase1 As New Collection
Dim Item As Variant
Dim X As Byte

For X = 1 To 3
Me.Controls("ComboBox" & X).Style = fmStyleDropDownList
Next

With Sheets("Feuil1")
TabPlage = .Range("A2:C" & .Range("A65536").End(xlUp).Row)
End With

On Error Resume Next
For i = 1 To UBound(TabPlage)
ColBase1.Add TabPlage(i, 1), TabPlage(i, 1)
Next
On Error GoTo 0

For Each Item In ColBase1
Me.ComboBox1.AddItem Item
Next

End Sub

Private Sub ComboBox1_Change()
ComboBoxing 2
End Sub


Private Sub ComboBox2_Change()
ComboBoxing 3
End Sub


Private Sub ComboBox3_Change()
Dim L As Integer
Dim tabtemp As Variant

With Worksheets("Feuil1")
L = .Range("a15000").End(xlUp).Row
tabtemp = .Range("A2:K" & L).Value
End With

For L = 1 To UBound(tabtemp, 1) 'l'erreur 13 se trouve ici
If tabtemp(L, 1) = CLng(ComboBox3.Value) Then
ListBox1.AddItem tabtemp(L, 1)
ListBox2.AddItem tabtemp(L, 2)
ListBox3.AddItem tabtemp(L, 3)
ListBox4.AddItem tabtemp(L, 4)
ListBox5.AddItem tabtemp(L, 8)
ListBox6.AddItem tabtemp(L, 6)
ListBox7.AddItem tabtemp(L, 7)
ListBox8.AddItem tabtemp(L, 5)
End If
Next L

End Sub


Private Sub ComboBoxing(Num As Byte)
Dim i As Integer
Dim ColBaseX As New Collection
Dim Item As Variant
Dim X As Byte

For X = Num To 3
Me.Controls("ComboBox" & X).Clear
Next

On Error Resume Next
For i = 1 To UBound(TabPlage)
If CStr(TabPlage(i, Num - 1)) = CStr(Me.Controls("ComboBox" &
Num -
1)) Then
ColBaseX.Add TabPlage(i, Num), CStr(TabPlage(i, Num))
End If
Next
On Error GoTo 0

For Each Item In ColBaseX
Me.Controls("ComboBox" & Num).AddItem Item
Next
End Sub

Merci














1 2