IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

macro compter occurrence par mois


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut macro compter occurrence par mois
    Bonsoir à tous,

    je sèche sur un programme. je veux compter le nombre d'occurrences différents par mois dans un tableau excel.

    mon tableau est composé d'une colonne date et d'une colonne avec les différents occurrences (pomme, banane, pêche, melon, ..).

    je cherche à comptabiliser dans une feuille excel dans un autre onglet que mon tableau, le nombre de banane, le nombre de pomme,.. et ceci par mois.

    est ce qu'il y a quelqu'un qui pourrait me guider dans la rédaction de ce programme? merci d'avance

    voici ci dessous le code j'ai commencé à rédigé mais je n'arrive pas à intégrer le tri par mois, ça ne marche pas, si quelqu'un à une idée?? jsuis preneur..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Sub Compteur_DR()
    k = 13
    z = 7
    Dim A, B, C, D, E, F As Integer
     
    For I = 1 To 12
    A = B = C = D = E = G = 0
     
    Sheets("Base").Select
    Range("A7").Select
     
    Do While Not (IsEmpty(ActiveCell))
     
    If Month("A" & z) = I
    If Range("F" & z).Value = "Pomme" Then
    A = A + 1
    ElseIf Range("F" & z).Value = "Banane" Then
    B = B + 1
    ElseIf Range("F" & z).Value = "Orange" Then
    C = C + 1
    ElseIf Range("F" & z).Value = "Kiwi" Then
    D = D + 1
    ElseIf Range("F" & z).Value = "Citron" Then
    E = E + 1
    ElseIf Range("F" & z).Value = "Fraise" Then
    G = G + 1
    End If
    ActiveCell.Offset(1, 0).Select
    z = z + 1
    End If
    Loop
    Sheets("repartition_dr").Select
    Cells(k, 3).Value = A
    Cells(k, 4).Value = B
    Cells(k, 5).Value = C
    Cells(k, 6).Value = D
    Cells(k, 7).Value = E
    Cells(k, 8).Value = G
    k = k + 1
    ' ActiveCell.Offset(1, 0).Select
     
    Next
    End Sub

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bienvenu Said au forum,
    Tu es sûr qu'un tableau croisé dynamique ne fera pas cela en 2 simples cliques?
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut programmmation vba occurrence
    Bonjour,
    oui certainement, mais le fichier va être utiliser par plusieurs personnes, cette macro va me permettre d'éviter des manipulations malheureuses...

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    A si Said!
    Mais crée ce TCD par macro!!!

    exemple dans poste précédent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Dim Plage As Range
    Dim DernLig1 As Long
    Dim DernLig2 As Long
    Dim sht As Worksheet
     
    Set sht = Sheets("Feuil2")
    DernLig1 = Range("A65536").End(xlUp).Row
    DernLig2 = sht.Range("A65536").End(xlUp).Row
     
    If DernLig2 >= 19 Then sht.Rows("19:" & DernLig2).EntireRow.Delete  'au cas où aucune donnée n'est inscrite au dessous du TCD
     
    Set Plage = Range("A8:E" & DernLig1)
     
        ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
            SourceData:=Plage).CreatePivotTable _
            TableDestination:=sht.Range("A19"), TableName:="TCD", _
            DefaultVersion:=xlPivotTableVersion10
     
        sht.PivotTables("TCD").AddFields RowFields:="Nom"
        With sht.PivotTables("TCD").PivotFields("Total")
            .Orientation = xlDataField
            .Caption = "Durée Totale"
            .Function = xlSum
            .NumberFormat = "[hh]:mm;@"
        End With
        sht.Activate
    Set Plage = Nothing
    Set sht = Nothing
    Ou simplement crée ton TCD à l'aide de l'enregistreur de macro et adapte!
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

Discussions similaires

  1. [MySQL] compter le nombre de visiteurs par mois?
    Par mustapha_aim dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/08/2010, 15h26
  2. Réponses: 2
    Dernier message: 23/06/2009, 13h36
  3. compter nombre de dossiers par mois?
    Par Ouggada dans le forum Windows Forms
    Réponses: 17
    Dernier message: 27/02/2009, 10h40
  4. Compter le nombre d'articles par mois
    Par Al3x dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/08/2008, 18h14
  5. Comment compter les jours par mois entre deux dates
    Par Doo89 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 10/01/2008, 21h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo