Bonsoir le fil, bonsoir le forum,
Une proposition VBA avec le code ci-dessous :
Sub Macro1()
Dim O As Worksheet 'déclare la variablre O (Onglet)
Dim TV As Variant 'déclare la variablre TV (Tableau des Valeurs)
Dim TL() As Variant 'déclare la variablre TL (Tableau des Lignes)
Dim I As Integer 'déclare la variablre I (Incrément)
Dim J As Integer 'déclare la variablre J (incrément)
Dim K As Integer 'déclare la variablre K (incrément)
Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter)
O.Columns(2).ClearContents 'vide la colonne 2 de l'onglet O
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
If InStr(1, TV(I, 1), "-", vbTextCompare) <> 0 Then 'si la donnée ligne I colonne 1 contient un tiret
K = K + 1 'incrémente K
ReDim Preserve TL(1 To K) 'redimensionne le tableau des lignes TL
Else 'sinon
TL(K) = TL(K) + 1 'définit la valeur de TL(K)
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
'si la donnée ligne I colonne 1 contient un tiret, renvoie la valeur de TL(J+1), incrémente J
If InStr(1, TV(I, 1), "-", vbTextCompare) <> 0 Then O.Cells(I, "B").Value = TL(J + 1): J = J + 1
Next I 'prochaine ligne de la boucle
End Sub