Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Valeur unique par colonne avec ces valeur

hermann

XLDnaute Junior
Supporter XLD
Bonjour a vous tous

Svp

Sur la feuille ci-joint comment faire pour avoir une list unique par colonne: "Nom" et combien de fois la precens du "Nom" est inscrit.
colonne E: Metier avec 2 mots
colonne G: Nom de la rue avec 3 mots
Pouvait vous metre le resultat dans la feuil 2

Merci pour votre aide
 

Pièces jointes

  • test-col.xlsx
    10.9 KB · Affichages: 16

Efgé

XLDnaute Barbatruc
Bonjour djidji59430, bonjour hermann

Bien après la bataille, mais comme j'avais fait quelque chose je le poste.
Création dynamique d'un dictionnaire par colonne.
Code:
Private Sub CommandButton1_Click()
Dim i&, j&, K As Variant, T As Variant
Dim DGen As Object

Set DGen = CreateObject("scripting.dictionary")

With Sheets("Feuil3")
    T = .Range(.Cells(1, 2), .Cells(.Cells(.Rows.Count, 1).End(3).Row, .Cells(1, .Columns.Count).End(1).Column - 1))
End With

For j = LBound(T, 2) To UBound(T, 2)
    If Not DGen.exists(T(1, j)) Then Set DGen(T(1, j)) = CreateObject("scripting.dictionary")
    For i = LBound(T, 1) + 1 To UBound(T, 1)
        DGen(T(1, j))(T(i, j)) = DGen(T(1, j))(T(i, j)) + 1
    Next i
Next j

i = 1
With Sheets("Feuil2")
    .Cells.ClearContents
    For Each K In DGen.keys
        .Cells(1, i) = K
        .Cells(2, i).Resize(DGen(K).Count, 1) = Application.Transpose(DGen(K).keys)
        .Cells(2, i + 1).Resize(DGen(K).Count, 1) = Application.Transpose(DGen(K).items)
        i = i + 3
    Next K
    .Columns.AutoFit
    .Activate
End With

End Sub

Cordialement
 

Pièces jointes

  • test-col_Efge.xlsm
    24.8 KB · Affichages: 15

hermann

XLDnaute Junior
Supporter XLD
Bonjour # Efgé

Monsieur, j'ai analyse votre script. Il est très bien !
Feuil2: Pour les colonnes: nom, prénom ville (commune) et rue il me manque un nombre total des occupant.
Dans la colonne ville est un petit erreur: la celle H2 est vide et la celle k2 affiche un "13"

Mes sincère excuse
@r
 

Efgé

XLDnaute Barbatruc
Re
Feuil2: Pour les colonnes: nom, prénom ville (commune) et rue il me manque un nombre total des occupant.
Je n'ai pas géré les =somme(). Je pense que vous pouvez les ajouter.
De toutes façons les sommes des colonnes sont toujours égales au nombre d'enregistrements de votre base de données (16 dans l'exemple)
chacun à un nom, un prénom etc....
Dans la colonne ville est un petit erreur: la celle H2 est vide et la celle k2 affiche un "13"
La liste des villes contient effectivement 13 cellule vides qui sont comptabilisées

Cordialement
 

Efgé

XLDnaute Barbatruc
Bonsoir à tous

Pour aller au bout du sujet, une version sans les cellules vides de la base de données et avec les totaux, sous la forme de tableau de feuille (l'ajout d'un =somme() ne me plaisait pas trop )
Code:
Private Sub CommandButton1_Click()
Dim i&, j&, K As Variant, T As Variant
Dim DGen As Object

Set DGen = CreateObject("scripting.dictionary")

With Sheets("Feuil3")
    T = .Range(.Cells(1, 2), .Cells(.Cells(.Rows.Count, 1).End(3).Row, .Cells(1, .Columns.Count).End(1).Column - 1))
End With

For j = LBound(T, 2) To UBound(T, 2)
    If Not DGen.exists(T(1, j)) Then Set DGen(T(1, j)) = CreateObject("scripting.dictionary")
    For i = LBound(T, 1) + 1 To UBound(T, 1)
        If T(i, j) <> "" Then DGen(T(1, j))(T(i, j)) = DGen(T(1, j))(T(i, j)) + 1
    Next i
Next j

i = 1
With Sheets("Feuil2")
    .Cells.Clear
    For Each K In DGen.keys
        .Cells(1, i) = K
        .Cells(1, i + 1) = "Nb_" & K
        .Cells(2, i).Resize(DGen(K).Count, 1) = Application.Transpose(DGen(K).keys)
        .Cells(2, i + 1).Resize(DGen(K).Count, 1) = Application.Transpose(DGen(K).items)
        With .ListObjects.Add(xlSrcRange, .Range(.Cells(1, i), .Cells(1, i + 1)).Resize(DGen(K).Count + 1, 2), , xlYes)
            .Name = "Tableau" & i
            .TableStyle = "TableStyleMedium4"
            .ShowTotals = True
        End With
        i = i + 3
    Next K
    .Columns.AutoFit
    .Activate
End With

End Sub
Je pense avoir fait le tour.

Cordialement
 

Pièces jointes

  • test-col_Efge(2).xlsm
    24.2 KB · Affichages: 11

hermann

XLDnaute Junior
Supporter XLD
Bonsoir Monsieur
Merci
Vous posséder une qualification très méthodique.

J'ai pris votre 1er model comme masque et ensuite je Interacte avec PowerShell sur feuille d'Excel.

A de là, toute les porte me sont ouvert.
La fin sa doit être arrive a sa [Lettre F]
http://arenas.pagesperso-orange.fr/Marion/lettre-f-1937-39.html
en plus votre model pour les stats.

Bonne soirée
@r

Nota bene:
Un autre model active. Excel/PowerShell
http://arenas.pagesperso-orange.fr/mmc/simulation-athome-mmc.html
ou sa Excel/PowerShell
http://arenas.pagesperso-orange.fr/Marion/unicode.html
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…