XL 2010 compter masculin feminin

  • Initiateur de la discussion Initiateur de la discussion jean123
  • 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 !

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: 47
Re
Salut Papou-net

A tester:
Code:
Sub recap1()
Feuil1.Columns("D:E").ClearContents
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 = CDbl(CDate(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
 
Bonsoir jean123,
Salut pierrejean,

Il suffit peut-être de modifier la ligne comme ceci:

Sub Recap()
Dim monDico As Object
Dim c As Range, Cle As Integer
Feuil1.Columns("D:E").ClearContents
Set monDico = CreateObject("Scripting.Dictionary")
With Feuil1
For Each c In .Columns(1).SpecialCells(xlCellTypeConstants)
If Not monDico.exists(c.Value) Then monDico.Add c.Value, CLng(c.Value)
Next c
.Range("D1").Resize(monDico.Count, 1) = Application.Transpose(monDico.items)
For Each c In .Columns(4).SpecialCells(xlCellTypeConstants)
i = 0
For Each c1 In .Columns().SpecialCells(xlCellTypeConstants)
If c1 = c And c1.Offset(, 1) <> "" Then i = i + 1
Next
c.Offset(, 1) = i
Next
End With
Set monDico = Nothing
End Sub
Cordialement.
 
Re

Salut Papou-net

Code:
Sub recap2()
Feuil1.Columns("D:E").ClearContents
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)
 If tablo(n, 1) <> "" Then
     x = CDbl(CDate(tablo(n, 1)))
     If tablo(n, 2) <> "" Then
         monDico(x) = monDico(x) + 1
     Else
         monDico(x) = 0
     End If
  End If
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
 
un gros merci a toi pierrejean ça marche nickel
j'aurai une toute dernière demande dans le même principe mais a la différence je voudrais faire la somme des valeurs au lieux de de compter les valeurs
et sur une autre macro pour chaque date en colonne I de la feuille 1 je souhaiterai copier et coller en feuille 2 a partir de la colonne L les données ce trouvant de la colonne J a V de la feuille 1 associé au date correspondante sur la feuille 2
 

Pièces jointes

c'est presque ça ;-)
en gros sur une première macro les somme que tu reporte en feuille 2 il faudrait quelle soit en feuille 1

sur la feuille 2 j'ai une liste de date en colonne A l'idée serait qu'avec une macro indépendamment du calcule de somme je puisse copier les données que j'ai en feuille 1 a partir de la colonne I et les rattacher au date de la colonne A de la feuille 2 (qui ne sont pas forcement dans le même ordre) il y a deux macro dissocié
 
- 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

Réponses
5
Affichages
421
Réponses
11
Affichages
181
Réponses
10
Affichages
372
Réponses
1
Affichages
120
  • Question Question
Réponses
7
Affichages
256
Retour