Renvoyer le nombre de lignes répondants à 3 critères

Bonjour à tous,

Je suis confronté à un problème complexe qui me laisse songer à l'usage de VBA. Malheureusement je n'ai que peu de connaissance de ce langage...

J'ai en ma possession une feuille excel qui comporte n lignes contenant des dates (envoi, retour, signature, archivage...) (cf. feuille source).

Je souhaite construire un tableau avec ces données qui me permettrait de connaître le nombre de lignes répondant à plusieurs critères :

  • mois
  • année
  • délais

Pour chaque mois de la même année (basé sur le mois et l'année de la colonne "envoi"), je souhaiterai connaître le nombre de ligne qui répondent aux critères suivant (cf. tableau de reporting) :

  • délai (retour-envoi) <5; délai (retour-envoi) compris entre 5 et 10 jours; délai (retour-envoi) supérieur à 10j; pas encore de retour;
  • délai (signature-retour) <5; délai (signature-retour) compris entre 5 et 10 jours; délai (signature-retour) supérieur à 10j; pas encore de retour;
  • délai (archivage-signature) <5; délai (archivage-signature) compris entre 5 et 10 jours; délai (archivage-signature) supérieur à 10j; pas encore de retour;
  • délai total<15 jours; délai total compris entre 15 et 25 jours; délai total>25jours; pas encore de retour

A ce jour j'ai uniquement créé des colonnes dans mon document pour renvoyer le mois, l'année et les délais en jours ouvrés mais delà je ne vois pas bien comment procéder au comptage de manière aisé si ce n'est avec l'usage d'un filtre mais étant donné le nombre de lignes à traiter (>600 et grandissant chaque mois) je ne pense pas qu'il s'agisse de la meilleur solution.

Dans l'espoir d'obtenir des éléments pour résoudre mon mystère.

Merci par avance pour vos contributions.

Benoît

7feuille-source.xlsx (175.47 Ko)

Bonjour,

Peux-tu nous préciser les entêtes des colonnes de la feuille masque?

Et préciser par 1 ou 2 exemples, les résultats escomptés?

Cdlt

Voici la pièce jointe actualisée.

Cela induit une petite précision par rapport au paragraphe ci dessous :

Pour chaque mois de la même année (basé sur le mois et l'année de la colonne "envoi"), je souhaiterai connaître le nombre de ligne qui répondent aux critères suivant (cf. tableau de reporting) :

- délai (retour-envoi) <5; délai (retour-envoi) compris entre 5 et 10 jours; délai (retour-envoi) supérieur à 10j; pas encore de retour;

- délai (envoi signature-retour signature) <5; délai (envoi signature-retour signature) compris entre 5 et 10 jours; délai (envoi signature-retour signature) supérieur à 10j; pas encore de retour;

  • délai (archivage-signature) <5; délai (archivage-signature) compris entre 5 et 10 jours; délai (archivage-signature) supérieur à 10j; pas encore de retour;
  • délai total<15 jours; délai total compris entre 15 et 25 jours; délai total>25jours; pas encore de retour;
13feuille-source.xlsx (174.47 Ko)

Re,

Un début de réponse (sans les moyennes pour le moment, je vais réflechir )

A te relire si tu es intéressé car TCDs.

Cordialement.

C'est un élément de réponse intéressant.

J'avais tenté de faire appel au TCDs mais malheureusement ça ne fonctionnait pas comme je voulais (et comme tu as réussi à le faire avec brio!).

Est-ce que mon TCD s'adapte si je rajoute des lignes ?

Re,

Voir fichier. La mise en forme est à imaginer (pas simple)

J'ai nommé la base en tableau (dynamique).

A te relire

Cdlt

11revision.xlsx (29.54 Ko)

Merci encore pour toutes ces solutions.

Lorsque je rajoute une ligne, le calcul de la moyenne se fait automatiquement mais il est faux si je n'étire pas la formule de la case précédente, comment celà se fait-il ?

La PivotTable ne se remet pas à jour non plus, est-ce normal ?

Re,

Il suffisait de modifier des références absolues en relatives

Pour l'actualisation auto du TCD, j'ai ajouté ce code dans le module de la Feuil1.

Normalement, à chaque activation de la feuille, tous les TCDs se mettront à jour.

Cdlt

Option Explicit
Private Sub Worksheet_Activate()
    ActiveWorkbook.RefreshAll
End Sub

Jean Eric, Merci !

Maintenant je cherche à copier une plage de cellule d'une autre feuille vers la feuille sur laquelle nous travaillons.

Voici ce que je code

Sub Macro1()

ChDir "N:\Projets01\...\Feuillesource.xlsx"

Workbooks.Open Filename:= _

"N:\Projets01\...\feuillesource.xlsx"

Windows("feuillesource.xlsx").Activate

Sheets("Feuille1").Select

Range("A6").End(xlDown).Select

ActiveCell.Offset(0, x).Select

x = ActiveCell.Address

Range(Cells(6, 1), x).Select

End Sub

A l'exécution de cette macro, j'ai bien le document Feuillesource ouvert mais uniquement la colonne A6:dernière ligne avec des valeurs de sélectionné. J'aimerai que cette plage s'étende à droite de 21 cases pour copier l'ensemble de la plage qui me concerne. Qu'est ce que je fais mal ?

Merci par avance

Rechercher des sujets similaires à "renvoyer nombre lignes repondants criteres"