Excel Vba – séquence de nombre de groupe dans une string

J'ai un code qui renvoie une string de séquence numérique de toutes les valeurs correspondantes à partir d'une cellule définie. Illustration ci-dessous:

COL A COL B COL C Item No Data Unique Data 1 AA 2 AB 3 A 4 B 5 B 6 A 7 A 8 B 9 B 10 B 

Cell D2 = Séquence de search (C2, B2: B11, A2: A11) renverra 1, 2, 3, 6, 7

Cell D3 = Séquence de search (C3, B2: B11, A2: A11) renverra 4, 5, 8, 9, 10

Cependant, le résultat que je veux est;

Cell D2 -> 1-3, 6-7

Cell D3 -> 4-5, 8-10

Voici le code de la fonction que j'utilise:

 Function Lookupsequence(Search_ssortingng As Ssortingng, _ Search_in_col As Range, Return_val_col As Range) Dim i As Long Dim result As Ssortingng For i = 1 To Search_in_col.Count If Search_in_col.Cells(i, 1) = Search_ssortingng Then result = result & ", " & Return_val_col.Cells(i, 1).Value End If Next Lookupsequence = Trim(result) End Function 

Essaye ça:

 Function Lookupsequence(Search_ssortingng As Ssortingng, _ Search_in_col As Range, Return_val_col As Range) Dim i As Long Dim result As Ssortingng Dim initial As Ssortingng Dim separator As Ssortingng Dim preValue As Integer Dim value As Integer preValue = -1 separator = "" For i = 1 To Search_in_col.Count value = CInt(Return_val_col.Cells(i, 1).value) If Search_in_col.Cells(i, 1) = Search_ssortingng Then If value - 1 = preValue Then result = initial & "-" & value Else result = result & separator & value initial = result separator = "," End If preValue = value End If Next Lookupsequence = Trim(result) End Function