Bonsoir, Whismeril,
je ne suis personnellement pas certain qu'il gagnerait beaucoup de cette manière, puisqu'il veut ajouter ce nombre en 4ème colonne de chaque ligne. Je vois alors mal comment il échapperait à une boucle à cette seule fin. Sans compter qu'il lui faudrait travailler, semble-t-il (?), sur un array à constituer d'abord.
Voici, de toutes manières, comment le faire de manière non sophistiquée, y compris si la première colonne n'est pas triée (car si tel est le cas dans l'exemple montré, il ne précise pas que tel est bien TOUJOURS le cas).
Voilà, donc ===>> (en VB6 à mon avis très vraisemblablement idem en .Net) :
' n'est là que pour se constituer un tableau/exemple _________
Dim toto(11, 4) ' |
toto(0, 0) = 4: toto(0, 1) = 188: toto(0, 2) = 193 ' |
toto(1, 0) = 5: toto(1, 1) = 188: toto(1, 2) = 193 ' |
toto(2, 0) = 6: toto(2, 1) = 187: toto(2, 2) = 193 ' |
toto(3, 0) = 7: toto(3, 1) = 101: toto(3, 2) = 116 ' |
toto(4, 0) = 8: toto(4, 1) = 93: toto(4, 2) = 124 ' |
toto(5, 0) = 8: toto(5, 1) = 185: toto(5, 2) = 193 ' |
toto(6, 0) = 9: toto(6, 1) = 90: toto(6, 2) = 127 ' |
toto(7, 0) = 9: toto(7, 1) = 184: toto(7, 2) = 193 ' |
toto(8, 0) = 10: toto(8, 1) = 85: toto(8, 2) = 131 ' |
toto(9, 0) = 11: toto(9, 1) = 83: toto(9, 2) = 133 ' |
toto(10, 0) = 11: toto(10, 1) = 183: toto(10, 2) = 192 ' |
toto(11, 0) = 11: toto(11, 1) = 80: toto(11, 2) = 137 ' |
'--------------------------------------------------------------
titi = toto
For i = 0 To UBound(toto)
If titi(i, 0) <> "" Then
toto(i, 4) = 1
For j = i + 1 To UBound(toto)
If titi(j, 0) = titi(i, 0) Then
toto(i, 4) = toto(i, 4) + 1
titi(j, 0) = ""
End If
Next
End If
Next
For i = 0 To UBound(toto)
For j = i + 1 To UBound(toto)
If toto(j, 0) = toto(i, 0) Then toto(j, 4) = toto(i, 4)
Next
Next
' ============ce qui suit n'est là que pour te permettre de visualiser le résultat
For i = 0 To UBound(toto)
MsgBox toto(i, 0) & " ====>>> " & toto(i, 4)
Next
EDIT : si maintenant son tableau est typé en numérique et non en variant ===>>>
Changer les guillemets par -111 (par exemple) dans
If titi(i, 0) <> "" et dans titi(j, 0) = ""
Ou tout autre nombre "particulier" qui ferait la "différence" nécessaire. J'ai pris un nombre négatif, par exemple.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.