J'ai essayé de trouver pourquoi dans le code suivant, la troisième fois à travers la boucle, je reçois une erreur de type 13 non concordance lorsque la ligne "Pour lCount = 0 à maxCount" est en cours évalué. Au départ, je pensais que le problème était d'obtenir la valeur du vArray, mais le test montre qu'il est déclenché par la ligne "For". Je n'ai aucune idée de la façon dont le type serait en train de changer pendant le traitement de la boucle. Merci!VB6 Incompatibilité de type dans la condition de boucle For
Public Function FindCodeIndex(vArray As Variant, MatchValue As String) As Integer
''This function locates a value in a combo box returning the index or -1 if not found
Dim lCount As Long
Dim maxCount As Long
Dim arrayStr As String
On Error GoTo ErrorHandler
maxCount = UBound(vArray)
For lCount = 0 To maxCount
arrayStr = vArray(1, lCount)
If UCase$(arrayStr) = UCase$(MatchValue) Then
FindCodeIndex = Int(lCount)
Exit Function
End If
Next lCount
FindCodeIndex = -1
Exit Function
ErrorHandler:
MsgBox "Unexpected error in frmComment::FindCodeIndex()" & vbCrLf & _
"Error Code: " & CStr(Err.Number) & " Error Desc: " & Err.Description
Vous n'attribuez 'arrayStr' à aucune valeur. Êtes-vous sûr que ce n'est pas le problème? – Dan
Affectation ajoutée (de la mémoire, pas au travail PC maintenant) à arrayStr. Les tests montrent que la boucle échoue à l'instruction For au troisième passage. – Timbuck
Tim, pouvez-vous utiliser la fenêtre Locals pour voir les données dans le tableau qui est utilisé dans la troisième passe, et éditez votre question pour inclure cette information. –