Tri de doublons en fonction du mois

dimferte

XLDnaute Nouveau
Bonjour,

J'ai un problème que je n'arrive pas à solutionner: j'ai une liste de noms avec des dates de venue: je voudrais faire une file active : compter tous les noms une seule fois par mois, mais bien sûr les compter plusieurs fois s'ils existent sur plusieurs mois.

En tableau croisé cela me semble impossible et je ne trouve pas de fonction pour le faire.

Je serai heureux si quelqu'un peut me donner une piste.

Avec mes remerciements
 

Pièces jointes

  • Fichier exemple.xlsx
    9 KB · Affichages: 36
  • Fichier exemple.xlsx
    9 KB · Affichages: 40
  • Fichier exemple.xlsx
    9 KB · Affichages: 40

david84

XLDnaute Barbatruc
Re : Tri de doublons en fonction du mois

Bonjour,
Il n'y a pas assez de données pour pouvoir traiter mais je pense qu'en créant une colonne Mois et en utilisant la fonction MOIS pour l'extraire de la date, tu pourras utiliser ce critère dans ton TCD.
A+
 

dimferte

XLDnaute Nouveau
Re : Tri de doublons en fonction du mois

Merci pour ton aide,

J'avais bien pensé à cela, mais je ne vois pas comment les filtrer dans le TCD ( il faudrait que les 2 deviennent des 1 dans mon exemple).
Encore merci
 

Pièces jointes

  • Fichier exemple.xlsx
    16.1 KB · Affichages: 32
  • Fichier exemple.xlsx
    16.1 KB · Affichages: 33
  • Fichier exemple.xlsx
    16.1 KB · Affichages: 33

klin89

XLDnaute Accro
Re : Tri de doublons en fonction du mois

Bonsoir dimferte, david84

Avec l'objet Scripting.Dictionary :
VB:
Sub Decompte_Visites_Patients()
  Set mondico = CreateObject("Scripting.Dictionary")
  Application.ScreenUpdating = False
  Range("A2:C" & Range("A65536").End(xlUp).Row).Sort Key1:=[B2], Order1:=xlAscending, Header:=xlGuess
  For Each C In Range("B2:B" & Range("A65536").End(xlUp).Row)
    temp = Format(C.Value, "mmmm yyyy") & "_" & C.Offset(, 1).Value
    mondico(temp) = mondico(temp) + 1
  Next C
  With Sheets("Feuil2")
    .Range("A1") = "VMDD": .Range("B1") = "PATNOMP": .Range("C1") = "Nbre de visites"
    .Range("A2").Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
    .Range("C2").Resize(mondico.Count, 1) = Application.Transpose(mondico.items)
    .Range("A2:A" & .Range("A65536").End(xlUp).Row).TextToColumns Destination:=.Range("A2"), _
     DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
     Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="_"
  End With
  Application.ScreenUpdating = True
End Sub
La Feuil1 doit être la feuille active, voir le résultat en Feuil2.
Une visite sur le site de J-Boisgontier s'impose pour bien comprendre l'objet dictionnaire.

Klin89
 
Dernière édition:

Discussions similaires

Réponses
14
Affichages
792

Statistiques des forums

Discussions
312 469
Messages
2 088 697
Membres
103 924
dernier inscrit
Patrick c