Salut a tous!
Je viens de remarquer quelque chose d'etrange a propos de worksheetfunction.match.
Quand on utilise une variable tableau en tant qu'array de recherche, la fonction semble avoir une limite.
Exemple simple:
Pas d'erreur, le debug.print nous donne bien une valeur, ok.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 option explicit Sub TestMatchFctTab() Dim i As Long Dim tb(200000) As String Dim xyz As Single For i = 0 To 200000 tb(i) = i & "x" Next i xyz = fcttestmtb(tb) Debug.Print xyz End Sub Function fcttestmtb(tbx() As String) As Single fcttestmtb = WorksheetFunction.Match(3392 & "x", tbx, 0) End Function
Maintenant si on met 3393 dans la fonction a la place de 3392, cela ne marche plus et pour toutes les valeurs >3392 on obtient l'erreur 1004.
Je n'arrive absolument pas a comprendre pourquoi cela s'arrete a 3392.
Le pire est que si je mets ces valeurs dans les cellules d'un worksheet et que je remplace dans ma fonction Match ma variable tableau tbx par la colonne ou j'ai mis les valeurs, et bien la ca marche...
Si vous avez une explication a ceci, je serais tres interesse!
Merci!
Partager