Salut,
voici ce que je te propose.
On va placer les valeurs dans un tableau à deux dimensions (Ville, somme des valeurs)
ensuite, on colle le tableau dans une feuille.
Ca donne ça :
Sub Liste_Villes()
Dim CL As Range
Dim mytab()
Dim i As Integer
Dim fin As Integer
Dim found As Boolean 'variable de control des entrées du tableau
ReDim Preserve mytab(1 To 2, 1 To 1) ' tableau a 2 dimension ( ville, somme )
Feuil4.Activate
fin = Range("a65536" ).End(xlUp).Row 'dernière ligne utilisée
For Each CL In ActiveSheet.Range("A1:A" & fin) ' pour chaque cellule
For j = 1 To UBound(mytab, 2) 'pour chaque entrée du tableau (villes)
found = False ' on mets faux pour dire que CL n'est pas dans le tableau
If mytab(1, j) = CL.Value Then ' si on trouve CL dans le tableau
mytab(2, j) = mytab(2, j) + CL.Offset(0, 1).Value ' on rajoute la valeur à celle existante
found = True 'on dit qu'on a trouver
Exit For 'on sort de la boucle
End If
Next
If Not found Then 'si on a pas trouver CL dans le tableau
i = i + 1 'on incrémente le conteur de ville
ReDim Preserve mytab(1 To 2, 1 To i) 'on rajoute un ligne au tableau
mytab(1, i) = CL.Value ' on colle le nom de la ville dans la première colonne
mytab(2, i) = CL.Offset(0, 1).Value ' et la valeur correspondante dans la deuxième
End If
Next ' on passe à la ligne suivante
Sheets("Feuil1" ).Activate
Sheets("Feuil1" ).Range("a1:b" & i) = Application.WorksheetFunction.Transpose(mytab) ' on colle Mytab dans la feuille Feuil1
Sheets("Feuil1" ).Range("a1:b" & i).Sort Key1:=Range("A1" ), Order1:=xlAscending ' on tri notre tableau
End Sub
Voilà, à toi de changer les noms de feuille pour que ça tourne chez toi.
+++++