Variable tableau sans doublon

Bonjour le forum,

J'ai une variable tableau à 2 dimensions avec 7 colonnes que j'ai nommé Tab1.

Colonne 1: codes postaux

Colonne 3: Localités

Je souhaite extraire les localités sans doublon dans la colonne 1 ainsi que les codes postaux correspondants en colonne 2 dans une nouvelle variable tableau qui comprend 2 colonnes et qui se nommera Tab2.

Colonne 1= Localités sans doublon

Colonne2 = codes postaux correspondants

Pouvez-vous m'aider stp ?

Merci

Bonjour Audrey, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim Tab1 As Variant 'déclare la variable Tab1
Dim D As Object 'déclare la variable O (Onglet)
Dim I As Integer 'déclare la variable I (Incrément)
Dim TMP1 As Variant 'déclare la variable TMP1 (tableau TeMPoraire 1)
Dim TMP2 As Variant 'déclare la variable TMP2 (tableau TeMPoraire 2)
Dim Tab2() As Variant 'déclare la variable Tab2

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter)
Tab1 = O.Range("A1").CurrentRegion 'définit l'onglet le tableau Tab1
Set D = CreateObject("Scripting.dictionary") 'définit le dictionnaire D
For I = 2 To UBound(Tab1, 1) 'boucle sur toutes les lignes I du tableau Tab1 (en partant de la seconde)
    If Not D.exists(Tab1(I, 3)) Then D.Add Tab1(I, 3), Tab1(I, 1) 'si la ville n'existe pas dans le dictionnaire, ajoute la ville comme clé et le code comme item
Next I 'prochaine ligne de la boucle
TMP1 = D.keys 'récupère dans le tableau temporaire TMP1, la liste des clés du dictionnaire D
TMP2 = D.items 'récupère dans le tableau temporaire TMP2, la liste des items du dictionnaire D
ReDim Tab2(D.Count, 1 To 2) 'redimensionne le tableau Tab2 (2 lignes, autant d'éléments que le dictionnaire D)
For I = 0 To D.Count - 1 'boucle sur tous les éléments du dictionnaire D
    Tab2(I, 1) = TMP1(I) 'alimente colonne 1 de Tabs
    Tab2(I, 2) = TMP2(I) 'alimente colonne 2 de Tabs
Next I
End Sub

bonjour

au plus simple

cordialement

101villes-code.xlsx (9.16 Ko)

Bonjour à tous,

@ ThauThème:

Pour le passage des éléments d'un dico vers un array, j'utilise ceci trouvé je ne sais plus où:

Tab2 = Application.Transpose(Array(D.keys, D.Items))

ça fonctionne jusqu'à 65536 éléments, Transpose étant dans les choux au delà.

ça ne change rien pour audrey_vba

A+

Merci pour vos réponses !

Je souhaitais une version en VBA donc le code de ThauThème est parfait !

J'ai pu l'adapter à mon projet sans problème.

Merci !

Bonjour le fil, bonjour le forum,

Le code d'AlgoPlus, que je découvre, est top !
Appliqué à ton fichier ça donnerait :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim Tab1 As Variant 'déclare la variable Tab1
Dim D As Object 'déclare la variable O (Onglet)
Dim I As Integer 'déclare la variable I (Incrément)
Dim Tab2() As Variant 'déclare la variable Tab2

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter)
Tab1 = O.Range("A1").CurrentRegion 'définit l'onglet le tableau Tab1
Set D = CreateObject("Scripting.dictionary") 'définit le dictionnaire D
For I = 2 To UBound(Tab1, 1) 'boucle sur toutes les lignes I du tableau Tab1 (en partant de la seconde)
    If Not D.exists(Tab1(I, 3)) Then D.Add Tab1(I, 3), Tab1(I, 1) 'si la ville n'existe pas dans le dictionnaire, ajoute la ville comme clé et le code comme item
Next I 'prochaine ligne de la boucle
ReDim Tab2(D.Count, 1 To 2) 'redimensionne le tableau Tab2 (2 lignes, autant d'éléments que le dictionnaire D)
Tab2 = Application.Transpose(Array(D.keys, D.Items))
End Sub
Rechercher des sujets similaires à "variable tableau doublon"