Nombre d'occurence sur plusieurs colonnes et lignes

Pourriez-vous, s'il vous plait, me donner des pistes pour développer un code VBA qui permet de faire le suivant :

Dans un tableau à plusieurs colonnes, j'ai intérêt aux 3 colonnes suivantes :

Crées envoyés reçus

12/07/2017 14/07/2017 14/08/2017

12/07/2017 16/07/2017 14/09/2017

12/08/2017 14/09/2017 16/09/2017

12/09/2017 14/09/2017 14/10/2017

12/09/2017 14/10/2017 14/11/2017

12/10/2017 14/11/2017 14/11/2017

Je voudrais calculer d'abord sur tout le tableau, le numéo de semaine pour chaque date (NO.SEMAINE.ISO()) pour avoir un truc comme cela .. le code ne doit pas être figé par le nombre de ligne car ça change avec le temps

numéro semaine

Crées envoyés reçus

52 52 54

52 63 63

54 57 63

63 63 63

A partir de ceci je crée un tableau comme ça :

crées envoyés reçus

semaine 52 2 1 0

semaine 54 1 0 1

semaine 63 1 2 3

Auriez-vous, s'il vous plait, l'amabilité de me proposer des solutions ?

Bonjour,

Ta requête est quelque peu ... confuse ...

Pourrais-tu joindre un fichier ...???

Bonjour,

Merci de votre réponse...

J'ai essayé d'expliquer mieux la requête dans le fichier en pj.

Voir svp la feuille 1 et 2...

24explication.xlsx (11.87 Ko)

Bonjour

Formule matricielle

28semaines.xlsx (19.47 Ko)

Puissé-je vous expliquer comment je suis reconnaissant pour vous.

Merci du fond de mon coeur

Juste une question en rapport avec cela :

Comment on fait en VBA pour appliquer cette formule à un tableau ?

En effet, le tableau que je vous ai envoyé en pièce jointe je l'ai mis à titre indicatif. Car concrétement, les lignes augmentent au fur et à mesure des enregistrements..

Concrétement :

Comment dire un truc comme ceci en VBA :

Tant que le nombre des lignes du tableau existent

Fait :

La formule matricielle que vous m'avez donné...

En fait mon vrai tableau est celui-là :

Les trois colonnes concernées sont Q et R et S.

Re

Les dates du tableaux sont au format texte : donc on ne peut rien calculer si on ne les convertit pas en date et si on ne supprime pas les #NA.

Les matricielles sur de gros volumes ça va ramer

Une autre proposition avec 3 TCD, une synthèse prenant sa source dans les TCD et un graphique associé.

Idéalement mettre la synthèse et le graphique sur un autre onglet que les TCD.

25semaines2.xlsx (91.33 Ko)

Sincèrement merci..

Si vous me permettez, je me demande seulement si cette solution pourraît s'adapter à mon besoin suivant :

Le tableau excel n'est qu'un fichier excel extrait à chaque fois que je veux faire apparaître la synthèse d'une application métier de l'entreprise, et c'est dans cette dernière que l'on crée les enregistrements des rapports au cours de la semaine.

D'abord, un de nos amis sur ce forum, m'avait proposé de créer un fichier qui contient une macro qui copie la première feuille du fichier que je télécharge ( autrement dit qui copie le tableau) dans un classeur contenant dans sa deuxième feuille le code qui permet de faire les calcul et les graphes.

Donc le problème du changement du fichier (tableau) à chaque fois est résolu.

Sur la deuxième partie, c'est à dire celle qui correspont au sujet de cette discussion :

Si je ne me trompe pas, les tableaux croisés dynamiques que vous aviez eu l'amabilité de me donner ne peuvent pas s'adapter à chaque fois que l'on télécharge un nouveau tableau.

Re

Un TCD a une source : il suffit de ne pas détruire la source et d'en changer le contenu.

On peut créer des TCD, GCD qui puisent dans des classeurs séparés qu'on écrase au fil du temps : il faut juste garder le même nom au classeur de data et le stocker dans le même dossier que le classeur d'analyse et, pour gérer le temps, travailler sur une arborescence de dossiers : on peut placer, chaque période, une copie des 2 classeurs dans le dossier ad hoc, les data étant celles de la période concernée.

Pour les tableaux d'analyse (tableau de suivi, tableau de reporting ou tableau de bord), je déconseille de refaire les TCD et autres analyses même par code. Un bon tableau de bord est un objet complexe et élaboré qu'on ne reconstruit pas tout le temps...

Tout doit être conçu pour traiter les nouvelles données par simple actualisation (qui peut être paramétrée dans les TCD pour se faire à l'ouverture du classeur.

Avoir du code pour importer, un autre pour analyser est contreproductif à mon avis.

J'ai oublié dans mon exemple : on peut créer

  • un segment ou une chronologie connectée aux 3 TCD pour filtrer les semaines à afficher dans les TCD,
  • un segment pour la synthèse
  • un bout de code pour synchroniser les 2 afin de limiter le graphique à quelques semaines

Un TCD a une source : il suffit de ne pas détruire la source et d'en changer le contenu.

Qu'est ce que vous entendez par une source : Est-ce le numéro de la feuille ?

Si c'était cela, quand je change le tableau de la feuille 1 avec une autre, juste pour tester.. rien ne bouge sur le TCD.

De plus, comment avez-vous fait, s'il vous plait pour les :

poser ces intervalles de semaines :

30/01/2017 - 05/02/2017

06/02/2017 - 12/02/2017

20/02/2017 - 26/02/2017

Car, bien sûr qu'ils vont changer avec le temsp ...

Re

La source c'est la plage ou mieux le tableau situé dans un onglet du classeur ou d'un autre classeur, voire dans une base de données (on peut effectuer des TCD sans exporter les données si on a accès à la base).

Les semaines 30/01/2017 - 05/02/2017 etc se calculent automatiquement quand, dans un TCD, on regroupe les dates par 7 jours en prenant un lundi comme date de début (j'ai pris le 2/01/201) (clic droit sur une date du TCD, Grouper).

Donc tout ajout ou glissement de date sera automatiquement traité sous cette forme sous réserve que les dates soient au format date et qu'il n'y ait pas de cellules dans ces colonnes contenant du texte ou des erreurs type #N/A.

Je ne peux que vous remercier pour vos réponses et amabilité.

Étant vraiment débutant en Excel je pose ma question comme suite :.

Si je supprime la feuille numéro 1 et je la remplace par une nouvelle. Cette nouvelle sera le tableau que je téléchargerai une autre semaine et qui contient donc des lignes supplémentaires. Si je touche rien à la feuille 2 la synthèse s'adaptera toute seule ?

Question bête mais je vous prie de l'éclairer sur ce point

Re

Non il faudrait supprimer les lignes hors titres du tableau de feuil1 et y recoller les nouvelles lignes, ce qui n'est pas pratique.

D'où mon conseil d'avoir

  • un classeur de données (éventuellement postez un exemple de 20 lignes du classeur tel qu'exporté)
  • et le classeur qui synthétise : ainsi quand on écrase l'ancien classeur (source des TCD) avec le nouveau, si on paramètre bien les TCD, à l'ouverture du classeur de synthèse, tout se met à jour.

Si cela vous rassure de voir aussi les données dans le classeur de synthèse, on peut lier le tableau de Feuil1 à ce classeur externe : lui aussi s’actualisera à l'ouverture. on peut même y ajouter des colonnes calculées si nécessaires : elle s'adapteront automatiquement au nombre de lignes

Dans tous les cas il faut garder les deux classeurs dans un même dossier et ne pas changer leurs noms d'où la nécessité d'une arborescence de dossiers par année puis par mois afin de garder l'historique.

78chris a écrit :

Non il faudrait supprimer les lignes hors titres du tableau de feuil1 et y recoller les nouvelles lignes, ce qui n'est pas pratique.

Ceci ne serait-ce pas possible à l'aide d'une macro ?

78chris a écrit :

un classeur de données (éventuellement postez un exemple de 20 lignes du classeur tel qu'exporté)

A quoi servirait ce classeur de données? s'il vous plait ?

78chris a écrit :

et le classeur qui synthétise : ainsi quand on écrase l'ancien classeur (source des TCD) avec le nouveau , si on paramètre bien les TCD, à l'ouverture du classeur de synthèse, tout se met à jour.

Qu'est ce que vous entendez par écraser ? supprimer les données en gardant les titres du tableau ?

N'ayant pas un bon niveau en Excel, j'avoue avoir la comprennette sur cette méthode :/

Moi comment je verrais l'application, c'est un classeur excel ou je clique sur un bouton (VBA) qui me permet de choisir un le fichier qui comporte les données, et aaprès un clique sur un deuxième bouton qui permet de faire directement la synthèse.

Si vous pouviez me guidez, je vous en saurais vraiment gré.

Bonjour

Je pense avoir clairement indiqué les possibilités.

Startinov a écrit :

78chris a écrit :

Non il faudrait supprimer les lignes hors titres du tableau de feuil1 et y recoller les nouvelles lignes, ce qui n'est pas pratique.

Ceci ne serait-ce pas possible à l'aide d'une macro ?

Tout est possible mais pourquoi automatiser une mauvaise solution ?

Startinov a écrit :
78chris a écrit :

un classeur de données (éventuellement postez un exemple de 20 lignes du classeur tel qu'exporté)

A quoi servirait ce classeur de données? s'il vous plait ?

A te fournir un exemple concret justement puisque tu as du mal à visualiser ce que j'explique

Startinov a écrit :
78chris a écrit :

et le classeur qui synthétise : ainsi quand on écrase l'ancien classeur (source des TCD) avec le nouveau , si on paramètre bien les TCD, à l'ouverture du classeur de synthèse, tout se met à jour.

Qu'est ce que vous entendez par écraser ? supprimer les données en gardant les titres du tableau ?

Non ça serait la même chose que ce qui est évoqué au début !

Ecraser un fichier veut dire qu'on exporte sous le même nom, ce qui annule et remplace le fichier de l'exportation précédente (en fait sa copie dans l'arborescence proposée).

Startinov a écrit :

Moi comment je verrais l'application, c'est un classeur excel ou je clique sur un bouton (VBA) qui me permet de choisir un le fichier qui comporte les données, et aaprès un clique sur un deuxième bouton qui permet de faire directement la synthèse...

Tu persistes sur ta solution de départ alors que j'ai pris pas mal de temps pour expliquer que ce n'est pas la bonne et pour proposer des solutions qui marchent...

78chris a écrit :

Tu persistes sur ta solution de départ alors que j'ai pris pas mal de temps pour expliquer que ce n'est pas la bonne et pour proposer des solutions qui marchent...

Pas du tout sincérement. C'est tout simplement car comme vous l'aviez bien dit :

78chris a écrit :

puisque tu as du mal à visualiser ce que j'explique

Peut-être, j'ai la comprennette dure.. j'ai compris l'idée mais d'un point de vue opérationnelle, je ne vois pas parquoi commencer.

De plus, ce que vous m'avez proposé par la formulle matricielle me paraît simple c'est pour cela que j'a insisté sur la première solution.

Pourriez-vous, s'il vous plait, me donner pas par pas ce que je dois faire ? consiédrez-moi, comme un étudiant et indiquez-moi, je vous prie, les étapes à faire.

RE

Pour commencer partir de la réalité pas d'un fichier exemple approximatif.

Donc je réitère ma demande d'un extrait, anonymisé si besoin.

Comme déjà dit le matriciel n'est pas fait pour les gros volumes...

78chris a écrit :

RE

Pour commencer partir de la réalité pas d'un fichier exemple approximatif.

Donc je réitère ma demande d'un extrait, anonymisé si besoin.

Le dernier fichier que je vous ai fait parvenir est un fichier exemple. J'ai seulement vidé le contenu des colonnes autre que les colonnes date d'envoi/ date de réception/date de signature et ai changé leurs noms.

RE

Ci joint 2 fichiers :

  • le fichier de données : export. Attention au format des dates comme déjà dit.
    Si votre système d'export n'exporte pas correctement les dates rien ne marchera.
  • le fichier d'analyse avec
    les 3 TCD sur un onglet : ils 'actualise automatiquement à l'ouverture
  • La synthèse qui les exploite et le graphique associé : il suffit de filtrer les semaines souhaitées (sur 2013 peut être fait par segment donc très souple et convivial) mais d'autres solutions possibles

Comme déjà dit toujours garder ces 2 documents dans un même dossier et écraser l'export au fil du temps : la synthèse s'adaptera au nouveau contenu.

5export.xlsx (65.80 Ko)
9analyse.zip (40.01 Ko)

Je vous remercie sincèrement de votre réponse. Je comprends beacoup mieux, il me semble, votre idée mainteant.

une question, si vous me permettez :

Quand j'essaie moi-même de refaire l'exercice, dès le regroupement par semaine on m'affiche :

Impossible de grouper cette selection.

Comment avez-vous fait pour éviter cela, s'il vous plait ?


78chris a écrit :

Re

Donc tout ajout ou glissement de date sera automatiquement traité sous cette forme sous réserve que les dates soient au format date et qu'il n'y ait pas de cellules dans ces colonnes contenant du texte ou des erreurs type #N/A.

J'ai trouvé ce code sur internet :

Sub conversionDate()
    Dim c As Range
    For Each c In Columns("A:A").SpecialCells(xlCellTypeConstants, 2)
        If IsDate(c) Then c = CDate(c)
    Next c
End Sub

Je vais l'appliquer sur mes trois colonnes, je vais également chercher quelque chose pour supprimer les erreurs de type #N/A.

Une deuxième qeustion :

Pour le tableau de synthèse, pourriez-vous, s'il vous plait, m'expliquer ce que vous avez fait pour que je puisse comprendre ?

Concrétement :

Cette formule :

SIERREUR(LIREDONNEESTABCROISDYNAMIQUE(C$1&"";TCD!$A$3;C$1;$A19);0) ?

Par avance, merci

Rechercher des sujets similaires à "nombre occurence colonnes lignes"