Incompatibilité de type

Bonjour à toutes et à tous

Petit soucis avec un code qui de mémoire fonctionnait avant mais bon ...

En effet cela bug à la ligne suivante:

 If TblBD(i, 1) Like "*" & tmp1 & "*" And TblBD(i, 2) Like "*" & tmp2 & "*" And TblBD(i, 3) Like "*" & tmp3 & "*" Then

sachant que Me.textbox1 est un champ texte

Me.textbox2 est un champ texte

Me.textbox3 est un champ de chiffre uniquement

et que je ne suis pas un mode explicit de plus...

Public Sub Listing_Partners()
   Dim b()
   tmp1 = Me.TextBox1 & "*": tmp2 = Me.TextBox2 & "*": tmp3 = Me.TextBox3 & "*"
   n = 0
   For i = LBound(TblBD) To UBound(TblBD)
    'If TblBD(i, 1) Like tmp1 And TblBD(i, 2) Like tmp2 And TblBD(i, 3) Like tmp3 Then

     If TblBD(i, 1) Like "*" & tmp1 & "*" And TblBD(i, 2) Like "*" & tmp2 & "*" And TblBD(i, 3) Like "*" & tmp3 & "*" Then
      n = n + 1: ReDim Preserve b(1 To NbCol + 1, 1 To n)
      For k = 1 To NbCol: b(k, n) = TblBD(i, k): Next k
    End If
   Next i
   If n > 0 Then Me.List_Partners.Column = b Else Me.List_Partners.Clear

End Sub

Merci par avance pour vos conseils

@+ Darkangel

bonjour,

Comment et où est défini/initialisé TblBD ?

bonne remarque:

Public Sub UserForm_Initialize()
  Set f = Sheets("Partners")
  Set rng = f.Range("B2:F" & f.[A65000].End(xlUp).row)
  NbCol = rng.Columns.Count
  TblBD = rng.Value

Me.List_Partners.List = TblBD
Me.List_Partners.ColumnCount = NbCol
LargeurCol = Array(340, 130, 60, 300, 10)
Me.List_Partners.ColumnWidths = Join(LargeurCol, ";")
End Sub

bonjour,

à moins d'une instruction Dim au niveau du module, tblBD n'est pas connue dans listing_partners

en début j'ai bien indiqué

Option Compare Text
Dim f, rng, TblBD(), NbCol

Voila la macro complète

Option Compare Text
Dim f, rng, TblBD(), NbCol

Public Sub UserForm_Initialize()
  Set f = Sheets("Partners")
  Set rng = f.Range("B2:F" & f.[A65000].End(xlUp).row)
  NbCol = rng.Columns.Count
  TblBD = rng.Value

Me.List_Partners.List = TblBD
Me.List_Partners.ColumnCount = NbCol
LargeurCol = Array(340, 130, 60, 300, 10)
Me.List_Partners.ColumnWidths = Join(LargeurCol, ";")
End Sub

Private Sub TextBox1_Change()
Listing_Partners
End Sub

Private Sub TextBox2_Change()
Listing_Partners
End Sub
Private Sub TextBox3_Change()
Listing_Partners
End Sub

Public Sub Listing_Partners()
   Dim b()
   tmp1 = Me.TextBox1 & "*": tmp2 = Me.TextBox2 & "*": tmp3 = Me.TextBox3 & "*"
   n = 0
   For i = LBound(TblBD) To UBound(TblBD)
    'If TblBD(i, 1) Like tmp1 And TblBD(i, 2) Like tmp2 And TblBD(i, 3) Like tmp3 Then

     If TblBD(i, 1) Like "*" & tmp1 & "*" And TblBD(i, 2) Like "*" & tmp2 & "*" And TblBD(i, 3) Like "*" & tmp3 & "*" Then
      n = n + 1: ReDim Preserve b(1 To NbCol + 1, 1 To n)
      For k = 1 To NbCol: b(k, n) = TblBD(i, k): Next k
    End If
   Next i
   If n > 0 Then Me.List_Partners.Column = b Else Me.List_Partners.Clear

End Sub

j'ai trouvé j'avais changé par mégarde la forme des cellules et du coup ca plantait mais rien à voir avec le code

Rechercher des sujets similaires à "incompatibilite type"