XL 2010 compter masculin feminin

jean123

XLDnaute Occasionnel
bonjour à tous, j'ai un tableau de 50 000 lignes environ et qui grossie au fur et à mesure

dans ce tableau j'ai des dates colonne A et une colonne (D) sexe "m" et "f"

j'aimerais si possible en vba pouvoir compter le nombre de "m" pour chaque date et le nombre de "f" pour chaque date

un grand merci pour votre aide
 

Pièces jointes

  • mf.JPG
    mf.JPG
    96.9 KB · Affichages: 40

Modeste geedee

XLDnaute Barbatruc
bonjour à tous, j'ai un tableau de 50 000 lignes environ et qui grossie au fur et à mesure

dans ce tableau j'ai des dates colonne A et une colonne (D) sexe "m" et "f"

j'aimerais si possible en vba pouvoir compter le nombre de "m" pour chaque date et le nombre de "f" pour chaque date

un grand merci pour votre aide
Tableau croisé dynamique...
upload_2017-7-10_12-15-56.png
 

jean123

XLDnaute Occasionnel
super ça marche parfaitement (et rapide en plus) un grand merci j'aurais un dernier petit truc a te demander
papou-net m'a fait une macro qui marche très bien et je l'en remercie mais qui a un temps d’exécution relativement long (4 min en moyenne)
pourrais tu y jeter un œil
Code:
Sub test() 
With Feuil1
  .Range("J:K").ClearContents
  lg = 1
  For Each Cel In .Columns(1).SpecialCells(xlCellTypeConstants)
    If Cel <> Cel.Offset(1, 0) And .Columns(10).Find(Cel, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then
      .Range("J" & lg) = Cel
      lg = lg + 1
    End If
  Next
  For Each Cel In .Columns(1).SpecialCells(xlCellTypeConstants)
    Set dte = .Columns(10).Find(Cel, LookIn:=xlValues, LookAt:=xlWhole)
    If Not dte Is Nothing Then
      If Cel.Offset(, 1) <> "" Then dte.Offset(, 1) = dte.Offset(, 1) + 1
    End If
  Next
End With
End Sub

un gros merci a toi
 

pierrejean

XLDnaute Barbatruc
Bonjour jean123
Salut Papou-net

Je n'ai peur-etre pas tout compris mais je crois que ceci serait plus simple (fichier de Papou-net)
A tester:
Code:
Sub recap1()
Set monDico = CreateObject("Scripting.Dictionary")
tablo = Range("A1:B" & Range("A" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
  x = tablo(n, 1)
  If tablo(n, 2) <> "" Then monDico(x) = monDico(x) + 1
Next
a = monDico.keys
b = monDico.items
Range("D1").Resize(UBound(a) + 1) = Application.Transpose(a)
Range("E1").Resize(UBound(b) + 1) = Application.Transpose(b)

End Sub
 

Papou-net

XLDnaute Barbatruc
RE

Bonsoir Jean123, Philippe, pierrejean,

Ton code paraît effectivement plus simple et fonctionne parfaitement dans l'état actuel du fichier. Mais, si l'on ajoute des dates dans la colonne A, l'affichage ne se fait pas ou avec des erreurs.

Cordialement.
 

pierrejean

XLDnaute Barbatruc
Re

Il y avait effectivement un problème (la classique inversion des jours et mois)
Cette version devrait être meilleure
Il reste à la jauger au point de vue vitesse d’exécution
 

Pièces jointes

  • Copie 01 de Exemple Jean123.xlsm
    21.7 KB · Affichages: 43

jean123

XLDnaute Occasionnel
désolé pour la réponse tardive
super ça marche nickel
par contre j'ai un petit souci qui vient de mes données:
les dates que j'ai en colonne A certaine sont au format date et d'autre format texte je pense (il faut que je clic 2 fois dans la cellule pour que la date soit au format date )
j'ai essayé plein de chose mais en vain je ne vois pas comment toutes les passer en date si ce n'est de cliquer cellule par cellule
du coup la macro bloque sur ça aussi pfff
là je bloque !
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 171
Membres
103 152
dernier inscrit
Karibu