XL 2010 Valeurs uniques d'une base de données

Caroline ;-))

XLDnaute Junior
Bonjour,

J’ai une base de données et je souhaiterais connaître les valeurs uniques, et cela, pour chaque variable (colonne).

Ex. : ma base de départ (onglet « bdd »)
upload_2017-11-22_15-19-52.png


Je souhaiterai avoir : (onglet « DDD ») pour dictionnaire de données
upload_2017-11-22_15-20-22.png


Il faudrait prévoir une base avec des nombres des colonnes et de lignes plus grands que ceux de mon exemple.

Voici ce que j’ai fait (manuellement) :
- Copier onglet « bdd » et créer un onglet « DDD » (coller valeurs)
- Séparer chaque colonne de données par une colonne vide
- Pour chaque colonne de données, supprimer les doublons (mes données ont des en-têtes)
- Trier le résultat
- Puis, il y a le décorum…
o Mettre des bordures
o Largeur des colonnes vides : 0,5

upload_2017-11-22_15-19-52.png

upload_2017-11-22_15-20-22.png

Est-ce que vous pouvez m’aider ?

Merci d’avance !
 

Pièces jointes

  • Trouver_val_uniq_Forum.xlsm
    668.4 KB · Affichages: 25

thebenoit59

XLDnaute Accro
Bonjour Caroline.

Voici un essai :

VB:
Sub DDD()
Dim nCol As Byte, n As Byte
Dim i&, j&
Dim a()
a = Sheets("bdd").[a1].CurrentRegion.Value
nCol = UBound(a, 2)
ReDim d(1 To nCol - 1)
For i = 1 To nCol - 1
    Set d(i) = CreateObject("scripting.dictionary")
Next i
For i = LBound(a) To UBound(a)
    For j = LBound(a, 2) To UBound(a, 2) - 1
        d(j)(a(i, j)) = ""
    Next j, i
With Sheets("DDD")
    .Cells.Clear
    n = 1
    For j = 1 To nCol - 1
        .Cells(1, n).Resize(d(j).Count).Value = Application.Transpose(d(j).Keys)
        n = n + 2
    Next j
End With
End Sub
 

Caroline ;-))

XLDnaute Junior
Bonjour PierreJean,

Merci pour ta macro qui marche impeccablement !
Et, même avec la déco (bordures et le tri) !

1/ Est-ce qu’il y aurait moyen d’avoir le nombre d’occurrences de chaque valeur unique ?
Ce serait super !

2/ J’ai remarqué que, dans « DDD », pour la variable « Ligne_L1 », il y a 2 « Titi » (1 avec un espace à la fin et 1 sans espace à la fin). Ça c’est normal, l’un des objectifs de la macro c’est, aussi, de déminer ce genre de problème…

Mais, quand je filtre la « bdd », il n’y a qu’un seul « Titi ». Il me semblait que le filtre d’excel montrait toutes les occurrences ? J’en ai parlé autour de moi… il y a tous les avis…
upload_2017-11-23_11-14-19.png


Bref, cette macro avec si possible le nombre d’occurrences me sera très utile ! Merci beaucoup !
 

Caroline ;-))

XLDnaute Junior
Tu le vaux bien, comme dirait une certaine pub...;)

Pour l'affichage des occurrences : à droite de la valeur ?
upload_2017-11-23_13-18-3.png


(les chiffres sont juste des exemples)
Je préfère voir l'affichage de tout ce qui existe dans la base. Donc, ça me convient bien, le fait que "Titi" et "Titi " apparaissent tous les 2. Merci !
A+
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
La fonction SujetCBx de cette fourniture sait fabriquer une liste classée sans doublon en une seule instruction. Les éléments sont convertis en String s'il y a lieu. Attention elle renvoie en réalité un Variant(0 To 1). La liste est dans son élément 0. Les postes de l'élément 1 contiennent chacun la liste des numéros des lignes se rapportant à l'entrée de même indice dans le tableau de l'élément 0.
Ça a l'air de ressembler tellement à des listes destinées à des ComboBox, que je me demande s'il y a nécessité des les enregistrer dans une feuille. En effet l'objet ComboBoxLiées jongle avec ça et avec virtuosité, tout seul dans son coin, au prix d'une programmation très minimaliste dans un UserForm.
 

Pièces jointes

  • CBxL.xlsm
    117.9 KB · Affichages: 20
Dernière édition:

Caroline ;-))

XLDnaute Junior
Bonjour The benoit59,

Merci pour ta macro !

C’est curieux le tri est fait partout sauf pour la variable « Ligne_L3 ».
Et sinon, j’aurai préféré voir apparaître les 2 « Titi » (avec ou sans espace à la fin) dans le DDD. De cette façon, je pourrai faire des manips pour rendre mes bases plus « propres ».

Merci !
 

Pièces jointes

  • Trouver_val_uniq_benoit.xlsm
    725.2 KB · Affichages: 17

Discussions similaires

Statistiques des forums

Discussions
311 710
Messages
2 081 781
Membres
101 817
dernier inscrit
carvajal