Microsoft 365 Formulaire recherche qui plante - VBA

Mcmaldo

XLDnaute Nouveau
Bonjour, j'écris ce post car j'ai fait le tour de mes connaissances et même en regardant partout je ne trouve pas de solution.
J'ai une base (Sous forme de tableau) Onglet Source. (Une mise à jour du tableau est réalisée de temps en temps par une autre macro)
J'ouvre un formulaire pour réaliser une recherche dans cet onglet.
Le formulaire se charge correctement. Suivant le mot recherché VBA plante. Erreur 13 Incompatibilité de type.
Si je recherche 1 ou 5 ou 8 tout fonctionne correctement. pour tout le reste ça plante dans cette partie là.

VB:
Private Sub TextBoxRech_Change()
  If Me.TextBoxRech <> "" Then
     mots = Split(Trim(Me.TextBoxRech), " ")
     Tbl = choix
     For i = LBound(mots) To UBound(mots)
        Tbl = Filter(Tbl, mots(i), True, vbTextCompare)
     Next i
     If UBound(Tbl) > -1 Then
        Dim b(): ReDim b(1 To UBound(Tbl) + 1, 1 To NbCol + 1)
        For i = LBound(Tbl) To UBound(Tbl)
          a = Split(Tbl(i), "|")
          j = a(NcolInt)
 [B]         For C = 1 To NbCol: b(i + 1, C) = BD(j, C): Next C[/B]
          b(i + 1, C) = j
        Next i
        Me.ListBox1.List = b
     Else
       Me.ListBox1.Clear
     End If
  Else
     UserForm_Initialize
  End If
End Sub

il me semble qu'une variable cloche mais je ne trouve pas laquelle.

Si vous avez une solution, je suis preneur car c'est la dernière phase de mon projet.
bonne journée.
 

Pièces jointes

  • FORMULAIRE RECHERCHE.xlsm
    206 KB · Affichages: 5
Solution
J'ai trouvé l'erreur ! Simple comme bonsoir... En fait dans l'avant dernière colonne j'ai des données avec le signe "|" Or je me servais de ce même sigle pour Spliter les données pour la recherche. Il suffisait donc que j'enlève | dans mes données et là le formulaire ne plante plu. Merci quand même à tous ceux qui ont lu ;)

Mcmaldo

XLDnaute Nouveau
Bonjour
j, non typé explicitement As Long, vaut "JAJA" au moment du plantage, soit a(9).
Ne peut se convertir en indice numérique de tableau.
Bonjour merci pour cette réponse. A n'importe quel endroit que je type j as long le userform plante. En fait j prend la valeur de a (Ncolint) comme a a une valeur texte (dépendante de la recherche) ça plante. Pour 1 ça passe pour 3 ça passe plus. J'ai l'impression que le UBound est limité
 

Mcmaldo

XLDnaute Nouveau
J'ai trouvé l'erreur ! Simple comme bonsoir... En fait dans l'avant dernière colonne j'ai des données avec le signe "|" Or je me servais de ce même sigle pour Spliter les données pour la recherche. Il suffisait donc que j'enlève | dans mes données et là le formulaire ne plante plu. Merci quand même à tous ceux qui ont lu ;)
 

Discussions similaires

Statistiques des forums

Discussions
315 131
Messages
2 116 573
Membres
112 792
dernier inscrit
Jean-Marc YOT