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 :

compter dans plusieurs feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 145
    Par défaut compter dans plusieurs feuilles
    Voila mon soucis, j'ai un code qui doit venir compter dans une feuille toute les cellules de même date ,en fonction des mois et de l'année (exemple : j'ai 12 lignes pour 10/2010, j'en ai 20 pour 01/2010).

    Le soucis (parce que yen a un) je compte seulement les lignes d'une feuille. Moi j'aimerais compter la somme des lignes de trois feuilles.

    exemple : le 10/2011 feuil1 = 12 lignes ; feuil2 = 4 lignes ; feuil3 = 2 lignes

    donc j'importe dans ma feuille de résultat qui est ici "BOARDMASTER" la somme, en face de la ligne date concerné (10/2010) la somme de ces trois feuil.

    Le 10/2011 BOARDMASTER = 18 lignes


    J'ai commencé un code qui fonctionne pour le moment,
    En gros le but est de compter le nombre d'action en court dans plusieurs feuille.


    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    Function comptercellules(intAnnee As Integer, bytMois As Byte) As Long
        Dim LaDerniere As Long, i As Long
     'And Range("A" & i).Interior.ColorIndex = 4
        With Worksheets("Feuill1")
            LaDerniere = .Range("A" & .Rows.Count).End(xlUp).Row
     
            For i = 3 To LaDerniere
                If Month(.Range("A" & i).Value) = bytMois And Year(Range("A" & i).Value) = intAnnee Then
                    comptercellules = comptercellules + 1
                End If
            Next i
        End With
     
     
     
    End Function
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        'Dim Cel As Range
        'With Worksheets("CUR SEMAINE")
        'For Each Cel In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
        'If Year(Cel) >= 2009 And Year(Cel) <= 2017 Then Cel.Interior.ColorIndex = 4
        'Next Cel
        'End With
     
     
     If Target.Column = 1 Then
     
        Dim Plage As Range, Cellules As Range
        Dim bytMois As Byte
        Dim intAnnee As Integer
     
        With Worksheets("BOARDMASTER")
     
        intAnnee = 2009
        Do Until intAnnee = 2017
            bytMois = 1
            Do Until bytMois = 13
                For Each Cellules In .Range("b5:b" & .Range("b" & .Rows.Count).End(xlUp).Row)
                    If Month(Cellules) = bytMois And Year(Cellules) = intAnnee Then
                        If Plage Is Nothing Then
                            Set Plage = Cellules(1, 5)
                        Else
                            Set Plage = Union(Plage, Cellules(1, 5))
                        End If
                    End If
                Next Cellules
     
                If Not Plage Is Nothing Then
                    Plage.Value = comptercellules(intAnnee, bytMois)
                    Set Plage = Nothing
                End If
                bytMois = bytMois + 1
            Loop
             intAnnee = intAnnee + 1
            Loop
        End With
     
    End If
     
    End Sub

  2. #2
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour adriennoob,

    j'ai ajouter une variable tableau contenant les nom de feuille
    et une boucle.

    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
    Function comptercellules(intAnnee As Integer, bytMois As Byte) As Long
    Dim LaDerniere As Long, i As Long
    feuille = Array("Feuill1", "Feuill2", "Feuill3")
     For i = LBound(feuille) To UBound(feuille)
        With Worksheets(feuille(i))
            LaDerniere = .Range("A" & .Rows.Count).End(xlUp).Row
     
            For i = 3 To LaDerniere
                If Month(.Range("A" & i).Value) = bytMois And Year(Range("A" & i).Value) = intAnnee Then
                    comptercellules = comptercellules + 1
                End If
            Next i
        End With
     Next
    End Function

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 145
    Par défaut
    Merci pour ton aide ça marche nikel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Compter des mots dans plusieurs feuilles
    Par takezo77 dans le forum Excel
    Réponses: 7
    Dernier message: 02/12/2014, 00h17
  2. [VBA-E]Instancier une plage de cellules prises dans plusieurs feuilles
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/03/2007, 13h08
  3. Text box dans plusieurs feuilles
    Par winieloursonaub dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/08/2006, 12h39
  4. [VBA-E]Recherche de date dans plusieurs feuilles
    Par atypik dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 05/04/2006, 21h36
  5. [Excel] Total de valeurs dans plusieurs feuilles
    Par Fealendril dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/01/2006, 13h25

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