Sub Tablo()
Dim Lignefin As Long, Tourne As Long, Indexe As Long
Dim Zone As Variant
Dim Info() As String
Dim Dictio As Object
'Création dictionnaire
Set Dictio = CreateObject("Scripting.Dictionary")
'Préparation tableau de consolidation avec un dimensionnement à 0 ( Attention , seule la deuxieme dimension est redimensionnable
ReDim Info(3, 0)
'Recherche derniere ligne
Lignefin = Range("C" & Rows.Count).End(xlUp).Row
'Mise en tableau de la zone à traiter.(zone commence à l'indice 1, zone (ligne,colonne))
Zone = Range("C7:G" & Lignefin)
'Boucle de 1a 1 ligne à la derniére
For Tourne = 1 To UBound(Zone, 1)
'Si nom client nom présent dans le dico
If Not Dictio.exists(Zone(Tourne, 1)) Then
'Note dans le dico l'indexe actuel pour le client donné
Dictio(Zone(Tourne, 1)) = Indexe
'Redimensionne en préservant les données le tableau de conso
ReDim Preserve Info(3, Indexe)
'Charge le nom client dans le tableau
Info(0, Indexe) = Zone(Tourne, 1)
'Incrément de l'indexe
Indexe = Indexe + 1
Else 'Si client connu dans dico
'Si reconnaissance donnée cout valide, charge dans tableau suivant l'indexe mémorisé dans le tableau pour ce client
If Zone(Tourne, 3) <> "Faux" And Zone(Tourne, 3) <> " " Then Info(2, Dictio(Zone(Tourne, 1))) = Zone(Tourne, 3)
'Si reconnaissance donnée ville valide, charge dans tableau suivant l'indexe mémorisé dans le tableau pour ce client
If Zone(Tourne, 5) <> "" Then Info(1, Dictio(Zone(Tourne, 1))) = Zone(Tourne, 5)
End If
Next ' controle fin de boucle
'Inscription du tableau en H14
Range("H14").Resize(UBound(Info, 2), UBound(Info, 1)) = Application.Transpose(Info)
End Sub