Bonjour evraere.
Je suppose que tu as récupéré la formule sur internet.
As-tu essayé de la comprendre en mode Pas à Pas ?
Tu te rendras compte que :
- Le résultat s'enregistre dans ChaineValeursTrouvees
- La liste des résultats est séparé par un Separator
- Le résultat décomposé découpe la chaîne de caractère à chaque Separator
Et en regardant comment se crée la chaîne de caractère :
ChaineValeursTrouvees = ChaineValeursTrouvees & Separator & Table_De_Recherche(i, no_index_col).Value
On remarque que pour le premier résultat trouvé on ajoute déjà un Separator.
Le résultat te donne au finale, selon ton fichier :
";1400"
en colonne D.
Automatiquement quand tu découperas cette chaîne tu obtiendras deux champs :
- "" pour le premier (avant le ";")
- 1400 pour le second (après le ";")
Ceci est dû au mauvais placement du CompteurValeursTrouvees, corrige le ainsi :
For i = 0 To NbLignes
If Table_De_Recherche(i, 1).Value = Valeur_Recherchee.Value Then
If CompteurValeursTrouvees > 0 Then
ChaineValeursTrouvees = ChaineValeursTrouvees & Separator & Table_De_Recherche(i, no_index_col).Value
Else
ChaineValeursTrouvees = Table_De_Recherche(i, no_index_col).Value
CompteurValeursTrouvees = CompteurValeursTrouvees + 1
End If
End If
Next i