XL 2016 resultat sans doublon

lamho27

XLDnaute Occasionnel
Bonjour le forum
j'ai 12 colonnes de 12 mois avec des noms de personnes , je voudrais résumer dans colonne "nom" toutes les nom de 12 mois sans nom répétition ( sans doubler )
merci d'avance
 

Pièces jointes

  • Classeur2.xlsx
    10.5 KB · Affichages: 48

mdo100

XLDnaute Occasionnel
Bonjour lamho27, Ce lien n'existe plus Ce lien n'existe plus toutes et tous,

Il suffit d'adapter le code de Paf et DoubleZero.

Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Application.ScreenUpdating = 0
     If Not Intersect(Target, Range("AQ3:BB65000")) Is Nothing Then
         Range(Range("BC3"), Range("BC3").End(xlDown)) = ""
         Dim Dico, i As Long, j As Byte
     Set Dico = CreateObject("Scripting.Dictionary")
     With Worksheets("Feuil1")
              For j = 43 To 55    ' pour chaque colonne de AQ à BB
            For i = 3 To .Cells(Cells.Rows.Count, j).End(xlUp).Row
                 Dico(CStr(.Cells(i, j))) = ""
             Next
         Next
         .Cells(3, 55).Resize(Dico.Count, 1) = Application.Transpose(Dico.keys)
     End With

         Range("BC2:BC65000").Sort Range("BC2"), xlAscending, Header:=xlYes ' trier
    End If
     Application.ScreenUpdating = -1
End Sub

Bon week-end à tous.
Cordialement
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,

ton code ça marche bien, mais quand je crée dans mon tableau de colonnes AQ3:BB6500 au lieu de B3:m6500; il ne marche pas, pourquoi ?

C'est un des avantages d'une fonction perso (post 4). Elle est adaptable par une personne ne connaissant pas VBA.

JB
 

Pièces jointes

  • SansDoublonsxxx.xls
    49.5 KB · Affichages: 33
  • Copie de test.xlsm
    2.9 MB · Affichages: 39
Dernière édition:

lamho27

XLDnaute Occasionnel
Bonjour à toutes et à tous
En dernière question que je vous demande aider
dans mon tableau il y a un feuil " résume " je voudrais total tout les mois dans ce feuil ; pouvez-vous m'aider ?
merci d'avance
 

Pièces jointes

  • test.xlsm
    2.8 MB · Affichages: 47

mdo100

XLDnaute Occasionnel
Bonjour BOISGONTIER,

Je vous avais oublier et comment vous oublier, car vous êtes une "bible" (si je puis dire) pour le plus grand nombre d'entre nous débutant ou non.

Pour lamho27,
En "BC3"
Code:
=sansdoublonstrié(AQ3:BB17)
tirer vers le bas et valider par Ctrl+Alt+Entrée.

Désactiver "Afficher un zéro dans les cellules qui ont une valeur nulle" dans Option excel, Options avancées, Afficher les options pour cette feuille de calcul.

Cordialement.
 
Dernière édition:

mdo100

XLDnaute Occasionnel
Re lamho27,

Si tu utilise la méthode de Jacques Boisgontier, il faut aussi utiliser son code a mettre dans un module.
Pour sa méthode "=sansdoublonstrié(AQ3:BB17)" tu dois mettre ce code.

Code:
Option Compare Text
Function SansDoublonsTrié(champ As Range)
  Set mondico = CreateObject("Scripting.Dictionary")
  mondico.CompareMode = vbTextCompare
  temp = champ
  For Each c In temp
    If c <> "" Then mondico(c) = ""
  Next c
  Dim b()
  ReDim b(1 To Application.Caller.Rows.Count)
  i = 1
  For Each c In mondico.keys
    b(i) = c
    i = i + 1
  Next
  Call tri(b, 1, mondico.Count)
  SansDoublonsTrié = Application.Transpose(b)
End Function
Sub tri(a, gauc, droi)          ' Quick sort
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
       temp = a(g): a(g) = a(d): a(d) = temp
       g = g + 1: d = d - 1
     End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub

Tu peux trouver tout ce que tu veux sur le site http://www.google.fr/url?sa=t&rct=j...qIclfLk-zDHjr2t6Q&sig2=dobrxDqajxFNinL-3BKadA

Bonne journée.
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Bonjour @ tous,
avec une formule matricielle.
VB:
=SIERREUR(INDIRECT(ADRESSE(MOD(PETITE.VALEUR(SI((B$3:M$17<>"")*(NB.SI(P$2:P2;B$3:M$17)=0);NB.SI(B$3:M$17;"<"&B$3:M$17)*10^5+LIGNE(B$3:M$17));1);10^5);MOD(MOD(PETITE.VALEUR(SI((B$3:M$17<>"")*(NB.SI(P$2:P2;B$3:M$17)=0);NB.SI(B$3:M$17;"<"&B$3:M$17)*10^5+LIGNE(B$3:M$17)*10^2+COLONNE(B$3:M$17));1);10^5);10^2)));"")

Voir PJ


@ + +
 

Pièces jointes

  • lamho27.xlsx
    12.1 KB · Affichages: 35

Discussions similaires

Réponses
22
Affichages
900

Statistiques des forums

Discussions
312 554
Messages
2 089 535
Membres
104 205
dernier inscrit
mehaya63