Attribuer une valeur à un groupe aléatoire de variable

Bonjour,

Je dispose d'un fichier contenant 1 colonne (A:A) avec des années.

Certaines se répètent sur plusieurs lignes, d'autres non, et il m'est impossible à l'avance de savoir combien de ligne de données il y aura, ni pour quelles années.

Je souhaiterais pouvoir attribuer automatiquement une valeur dans la colonne B, pour chaque ligne et pour chaque année similaire; si possible avec le tri décroissant de la sorte :

1980 | 5

1980 | 5

1980 | 5

1956 | 4

1957 | 3

1957 | 3

1957 | 3

1958 | 2

1958 | 2

1958 | 2

1959 | 1

Je suis en train de faire une macro pour cela, mais ca me semble trop long (il y a 80 années) et j'ai essayé avec une fonction =RANG, ca fonctionne sauf qu'il me classe les années en fonction de leur position dans le classeur, et non en fonction des unes par rapport aux autres.

Merci par avance,

Bien cdt,

G.

Bonjour,

Une solution en pièce jointe

A+

13pwetzou.xlsm (17.64 Ko)

Bonjour galopin,

Merci pour ton temps.

J'ai du mal m'exprimer sur le besoin.

En fait je dois placer des points dans l'espace, en leur donnant une coordonnée X et Y.

Pour placer mes points en X, j'utilise les années. évidemment plusieurs points ayant la même année X seront sur le même espace, c'est alors pourquoi je leur donne aussi une coordonnée Y.

Ce que j'aurais voulu pouvoir faire, c'est donnée la même coordonnée X à tous les points ayant la même année, en créant des groupes (1958 = 1; 1959 = 2 etc...).

1 année à 1 groupe X, ce groupe peut contenir 1 point comme 20...

Dans l'idée "tableur", je cherchais quelque chose du type "tant que tu rencontres dans les cellules en remontant, la même valeur, tu marques "X1" à côté et tu le recopies pour toutes les lignes de la même valeur. Dès que tu rencontres une valeur différente, tu marques "X2" à côté et tu le recopies pour toutes les lignes de la même valeur. Dès que tu rencontres une valeur différente, tu .... "X3" etc".

J'avais pensé à cela :

Sub test()

Dim i As Integer
Dim y As Integer
i = 2
y = 1

For i = 2 To 77
If Cells(i, 1).Value = Cells(i + 1, 1).Value Then
Cells(i, 3).Value = y
End If

i = i + 1
y = y + 1

Next
End Sub

Mais ca ne semble pas marcher...

Bonsoir,

Si j'ai bien compris voir pièce jointe.

Si j'ai pas compris fournir un exemple en pièce jointe avec quelques lignes du résultat souhaité en Feuil2 : ça m'évitera de travailler pour rien...

A+

11pwetzouv2.xlsm (18.84 Ko)

Pas de travail pour rien ici,

Puisque tu as exactement répondu à mon problème.

Merci beaucoup Galopin !

Rechercher des sujets similaires à "attribuer valeur groupe aleatoire variable"