XL 2016 resultat sans doublon

  • Initiateur de la discussion Initiateur de la discussion lamho27
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Bonjour lamho27

un essai macro:

Code:
Sub Lamho27()
Dim Dico, i As Long, j As Byte
Set Dico = CreateObject("Scripting.Dictionary")

With Worksheets("Feuil1")
For j = 2 To 13 ' pour chaque colonne de B à M
  For i = 3 To .Cells(Cells.Rows.Count, j).End(xlUp).Row
  Dico(CStr(.Cells(i, j))) = ""
  Next
Next
.Cells(3, 14).Resize(Dico.Count, 1) = Application.Transpose(Dico.keys)
End With

A+
 
Bonsoir,

Avec fonction perso

-maj auto si on modifie les noms
-code réutilisable

Sélectionner N3:N29
=sansdoublons(A3:M17)
valider avec maj+ctrl+entrée

ou

Sélectionner P3😛29
=sansdoublonsTrié(A3:M17)
valider avec maj+ctrl+entrée

JB
 

Pièces jointes

Dernière édition:
Tu n'as pas modifié les cellules des plages nommées MOIS

Ecemple pour janvier, au lieu de :
Code:
=DECALER(Calendrier!$B$2;1;;NBVAL(Calendrier!$B:$B)-1)
Il faut :
Code:
=DECALER(Calendrier!$AQ$2;1;;NBVAL(Calendrier!$AQ:$AQ)-1)

Mais puisque tu as déjà des macros dans ton fichier, tu devrais utiliser la fonction personnalisée de JB
(Regarde les modules dans son fichier)
 
Dans les noms définis

Pour le nom janvier, dans "Fait référence à"
Code:
 =DECALER(Calendrier!$AQ$2;1;;NBVAL(Calendrier!$AQ:$AQ)-1)

Idem pour les autres mois en modifiant les colonnes

Mais regarde avec le code de JB dans ton fichier (Module3) - Plus besoin des noms définis
 

Pièces jointes

Re-bonjour,

... est ce qu'on peut faire automatique sans bouton clic ?...

Dans un module standard :
VB:
Option Explicit
Sub Code_de_Paf()
    Dim Dico, i As Long, j As Byte
    Set Dico = CreateObject("Scripting.Dictionary")
    With Worksheets("Feuil1")
        For j = 2 To 13    ' pour chaque colonne de B à M
            For i = 3 To .Cells(Cells.Rows.Count, j).End(xlUp).Row
                Dico(CStr(.Cells(i, j))) = ""
            Next
        Next
        .Cells(3, 14).Resize(Dico.Count, 1) = Application.Transpose(Dico.keys)
    End With
End Sub

Dans le module de l'onglet de travail :
VB:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.ScreenUpdating = 0
    If Not Intersect(Target, Range("b3:m65000")) Is Nothing Then
        Range(Range("n3"), Range("n3").End(xlDown)) = ""
        Call Code_de_Paf
        Range("n2:n65000").Sort Range("n2"), xlAscending, Header:=xlYes ' trier
    End If
    Application.ScreenUpdating = -1
End Sub

A bientôt 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2016 liste
Réponses
10
Affichages
204
Réponses
5
Affichages
161
D
  • Question Question
Réponses
5
Affichages
70
Didierpasdoué
D
  • Question Question
Microsoft 365 tableau d'alerte
Réponses
2
Affichages
138
Réponses
4
Affichages
221
Retour