Comparaison de Date et Moyenne de lignes avec des conditions

Bonjour (Excusez moi pour la premiere version de mon message mais j'etais tellement presser de mettre le code pour que le message soit clair que j'en ai oublier l'essentiel )

Je souhaiter faire la Moyenne des pourcentages pour chaque mois que j'ai dans mon tableau (la colone P).

Il faut donc que je verifie pour chaque ligne si le mois et l'annee (Colonne B) de la ligne correspond bien au mois et a l'annee de la colone P. Si c'est le cas j'additionne le pourcentage de la ligne a la valeur de la colonne M que je diviserai apres pour avoir une moyenne.

Date    Date    Déf Aér    categ aero    CategAero    CateAeroNom    Type Aéro    TypeAeroNom    Dispo    Seuil Mini    Seuil Maxi    Nombretotal    Taux Dispo                Moyenne
20050101    01/01/2005    DA01    A010    DA01A010    Y    X    70,2    55    66    142    49,43661972            janv-05    #VALEUR!
20050201    01/02/2005    DA01    A010    DA01A010    YTA001    X    65,3    55    66    142    45,98591549            févr-05    
20050301    01/03/2005    DA01    A010    DA01A010    Y    TA001    X    66    55    66    142    46,47887324            mars-05    
20050401    01/04/2005    DA01    A010    DA01A010    Y    TA001    X    66,5    55    66    142    46,83098592            avr-05    
20050501    01/05/2005    DA01    A010    DA01A010    X    Y    71    55    66    142    50            mai-05    
20050601    01/06/2005    DA01    A010    DA01A010    X    TA001    Y    63,5    55    66    142    44,71830986            juin-05    
20050701    01/07/2005    DA01    A010    DA01A010    X    TA001    Y    70,5    55    66    142    49,64788732            juil-05    

Voici ma feuille de Calcul: La date pour les moyenne ce trouve dans la colone P et la date du tableau avec les donnée se trouve dans la Colonne B

Je veux faire la moyenne des Pourcentages de la colone M pour lesquelles la date est comprise dans le mois qui se trouve dans la colone P:

Exemple : Tous les pourcentage de Janvier 2007 le resultat se trouve dans la colone Q juste apres la colonne des mois P

J'ai continué a chercher un peu et j'ai coder ce code en VB

Sub CalculTaux()
    'Définit une variable qui va représenter un classeur
    Dim Wb As Workbook
    'Définit une variable qui va représenter une feuille de calcul
    Dim Ws As Worksheet
    'Définit une variable qui va représenter une cellule
    Dim Cell1 As Range
    Dim Cell2 As Range
    Dim DateP As Date
    Dim DateB As Date
    Dim Res As Integer
    Dim ligne As Integer
    Dim Compt As Integer

    For Each Cell1 In Ws.Range("P4:P38")
        Res = 0
        Compt = 0
        DateP = Cell1.Value
        For Each Cell2 In Ws.Range("B4:B443")
            DateB = Cell2.Value
            ligne = Cell2.Row
            If Year(DateB) = Year(DateP) & Month(DateP) = Month(DateB) Then
                Res = Res + Ws.Cells(ligne, 12)
                Compt = Compt + 1
            End If
        Next Cell2
        Cells(Cell1.Row, (Cell1.Column + 1)).Value = (Res / Compt)
    Next Cell1

End Sub

Je pense qu'il repond à mon probleme mais j'ai une erreur "Erreur d'execution 91" Variable Objet ou variable de bloc with non définie

De plus je ne sais pas comment l'applique a ma feuille Excel c'est la premiere fois que j'utilise VB dans Excel

jespere que vous pourrez m'aider s'il vous plait [/code]

Bonjour et bienvenue

Merci de lire notre Charte

Extrait :

# un minimum de politesse est de rigueur (bonjour, SVP, merci, ...), sans cela vous aurez très peu de chance d'obtenir une réponse

# un fichier joint avec votre message augmentera le nombre et la clareté des réponses (avant de joindre un fichier, veuillez IMPERATIVEMENT lire ceci) 

Amicalement

Nad

Bonjour Nad, désoler pour la premiere version du message, j'essayais d'expliquer mon probleme assez longuement pour qu'il soit claire et j'en ai oublié l'essentiel.

Pour le fichier a joindre, il se trouve ici :

https://www.excel-pratique.com/~files/doc2/zDHOQExemple.xls

Merci et j'espere que vous pourrez m'aider à trouvez la solution

Re

Si tu veux qu'un maximum de personne lise ton fichier, il faut le joindre au format .xls

Amicalement

Nad

Merci Nad-Dan pour la précision, voici le fichier au format XLS,

Re

Si j'ai bien compris, en Q2 :

=MOYENNE(SI((MOIS($B$2:$B$443)=MOIS(P2))*(ANNEE($B$2:$B$443)=ANNEE(P2));$M$2:$M$443))

Formule Matricielle : à valider avec Ctrl+MAJ+ENTREE

Amicalement

Nad

Merci beaucoup, le seul probleme est que j'obtient le même resultat pour toutes les moyennes sur les mois et ce n'est pas vraiment logique je pense. Pourtant ta formule est correcte dans le sens de ma demande donc je ne comprend pas trop.

Je met en lien ici mon fichier complet avec la formule de Nad-Dan :

https://www.excel-pratique.com/~files/doc2/Cx5HWExemple.xls

Vu la precision du resultat et les Taux de la colonne M il y a un probleme mais je ne vois pas du tout où

Pourriez vous m'aidez s'il vous plait?

Re

Valide la formule avec CTRL+MAJ+ENTREE et non pas seulement avec ENTREE

Nad

Merci beacoup c'est parfait

C'est peu etre une question un peu stupide mais quel est la difference ENTREE valider avec entre et valider avec CTRL+MAJ+ENTREE ?

Merci beaucoup encore Nad-Dan

Re

On utilise Ctrl+Maj+Entrée pour valider une formule faisant référence à plusieurs plages (elle est dite Matricielle)

Exception à la règle : SOMMEPROD qui, bien qu'une matricielle, se valide normalement.

Amicalement

Nad

Merci encore

tu m'as sortis d'un bon guepier.

Bonne journée

Bonjour,

Je reviens vers vous, car j'ai un autre petit probleme : je voulais inserer une nouvelle condition dans la formule que vous m'aviez donnée hier, mais il me retourne le resultat #N/A

=MOYENNE(SI((MOIS($B$2:$B$443)=MOIS(Q2))*(EXACT($E$2:$E$441;$U$3))*(ANNEE($B$2:$B$443)=ANNEE(Q2));$O$2:$O$443))

Le fichier est toujour le même que precedement.

Je voudrais comparer deux chaine de caractère pour filtrer un peu plus mes lignes. Normalement j'utilise la commande EXACT pour deux chaines de caractères. Pourquoi cette fois cela ne marche t-il pas? Pourriez vous m'aidez s'il vous plait?

Bonjour

Peux-tu essayer :

=MOYENNE(SI((MOIS($B$2:$B$441)=MOIS(P2))*(ANNEE($B$2:$B$441)=ANNEE(P2))*($E$2:$E$441=$U$3);$M$2:$M$441))

Toujours en Matricielle

Amicalement

Nad

Rechercher des sujets similaires à "comparaison date moyenne lignes conditions"