Compter selon date/période (Vba ou fn Si)
Résolu
Co_nexion
Messages postés
328
Date d'inscription
Statut
Membre
Dernière intervention
-
Co_nexion Messages postés 328 Date d'inscription Statut Membre Dernière intervention -
Co_nexion Messages postés 328 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je me permets de vous solliciter pour un problème que j'ai grand mal à résoudre.
Je souhaite comptabiliser des données (dans le document ci-joint colonne L) en fonction de la date.
J'ai essayer plusieurs formules (voir en L) mais celle-ci ne marche pas et en plus je ne suis pas sur qu'elle puisse réaliser tout ce que je souhaite faire.
Je souhaite comptabiliser les données en H uniquement si la date en colonne E est comprise entre le 01/04/2012 et 16/04/2012.
Petite complication si cela est possible : le 16/04/2012 est un dimanche alors il faudrait qu'excel comprenne que l'intervalle se réduit du 01/04/2012 au 14/04/2012.
Et j'ai mis ce sujet dans le forum programmation pour la demande qui suit.
En effet, il faudrait que cette formule s'actualise en fonction du mois en cours. Je m'explique : Nous sommes en mai l'intervalle devient alors 01/04/2012 au 16/05/2012. Et ainsi de suite.
Merci mille fois de vous penchez sur mon problème. Si vous avez le moindre problème de compréhension du problème où besoin de compléments, n'hésitez pas.
Jusqu'à maintenant j'ai franchi toutes les étapes pour parvenir à ce rendu et j'espère ne pas avoir à baisser les bras si près du but.
Fichier : https://www.cjoint.com/?BDrpAVSie7z
je me permets de vous solliciter pour un problème que j'ai grand mal à résoudre.
Je souhaite comptabiliser des données (dans le document ci-joint colonne L) en fonction de la date.
J'ai essayer plusieurs formules (voir en L) mais celle-ci ne marche pas et en plus je ne suis pas sur qu'elle puisse réaliser tout ce que je souhaite faire.
Je souhaite comptabiliser les données en H uniquement si la date en colonne E est comprise entre le 01/04/2012 et 16/04/2012.
Petite complication si cela est possible : le 16/04/2012 est un dimanche alors il faudrait qu'excel comprenne que l'intervalle se réduit du 01/04/2012 au 14/04/2012.
Et j'ai mis ce sujet dans le forum programmation pour la demande qui suit.
En effet, il faudrait que cette formule s'actualise en fonction du mois en cours. Je m'explique : Nous sommes en mai l'intervalle devient alors 01/04/2012 au 16/05/2012. Et ainsi de suite.
Merci mille fois de vous penchez sur mon problème. Si vous avez le moindre problème de compréhension du problème où besoin de compléments, n'hésitez pas.
Jusqu'à maintenant j'ai franchi toutes les étapes pour parvenir à ce rendu et j'espère ne pas avoir à baisser les bras si près du but.
Fichier : https://www.cjoint.com/?BDrpAVSie7z
A voir également:
- Compter selon date/période (Vba ou fn Si)
- Excel compter cellule couleur sans vba - Guide
- Inverser touche fn ✓ - Forum Windows 7
- Whatsapp date incorrecte ✓ - Forum Mobile
- Touche fn clavier - Guide
- Airpods 3 date de sortie - Guide
15 réponses
Bon, je pense que c'est la dernière :-)
Si c'est bon oublie pas de cocher "Résolu" (en haut à gauche)
A+
Public Function VIP_mois(Mois As Integer, plage As Range) As Integer Dim Cel As Range, NbJour As Integer Dim NB As Integer Dim D As Date Application.Volatile NbJour = IIf(Mois < 12, DateDiff("d", "1/" & Mois & "/" & Year(Now), "1/" & Mois + 1 & "/" & Year(Now)), 31) D = NbJour & "/" & Mois & "/" & Year(Now) For Each Cel In plage If Cel = "VIP" Then If Cel.Offset(0, 1) <= D And Cel.Offset(0, 2) > D Then NB = NB + Cel.Offset(0, 4) End If End If Next Cel VIP_mois = NB End Function
Si c'est bon oublie pas de cocher "Résolu" (en haut à gauche)
A+
Bonjour le forum,
Ne voyez vous aucune solution pour ma question ?
Où ma question n'est-elle pas claire ?
Ne voyez vous aucune solution pour ma question ?
Où ma question n'est-elle pas claire ?
Bonjour,
C'est quoi qui décide de la période ?
Dans ton exemple il y a des dates de mai et d'avril ?
Et essaye d'expliquer un peu plus, c'est pas fort clair
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
C'est quoi qui décide de la période ?
Dans ton exemple il y a des dates de mai et d'avril ?
Et essaye d'expliquer un peu plus, c'est pas fort clair
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Bonjour Lermite222, bonjour le forum,
La période démarre début 2012 (ou même avant) et se termine le 16 du mois en cours. En fait de mois en mois la période s'aggrandit... Est-ce que je me fais bien comprendre.
Un exemple :
Nous sommes le 15/04/2012 : la période va du 01/01/2012 jusqu'au 15/04/2012.
Nous sommes le 16/04/2012 : la période va du 01/01/2012 jusqu'au 16/04/2012.
Nous sommes le 17/04/2012 : la période va du 01/01/2012 jusqu'au 16/04/2012.
Mais dès le 1er mai la période doit se réactualiser pour reprendre en compte la fin du mois d'avril oublié. Et le 16 mai rebelote : fin de période jusqu'au premier janvier.
En gros, pour chaque mois en cours, la période du 17 inclus au 30 ou 31 doit être exclu avant d'être réintégré le mois suivant.
Si ce n'est toujours pas clair merci de me le préciser et j'essayerai de créer un petit fichier excel explicatif.
Merci à vous
La période démarre début 2012 (ou même avant) et se termine le 16 du mois en cours. En fait de mois en mois la période s'aggrandit... Est-ce que je me fais bien comprendre.
Un exemple :
Nous sommes le 15/04/2012 : la période va du 01/01/2012 jusqu'au 15/04/2012.
Nous sommes le 16/04/2012 : la période va du 01/01/2012 jusqu'au 16/04/2012.
Nous sommes le 17/04/2012 : la période va du 01/01/2012 jusqu'au 16/04/2012.
Mais dès le 1er mai la période doit se réactualiser pour reprendre en compte la fin du mois d'avril oublié. Et le 16 mai rebelote : fin de période jusqu'au premier janvier.
En gros, pour chaque mois en cours, la période du 17 inclus au 30 ou 31 doit être exclu avant d'être réintégré le mois suivant.
Si ce n'est toujours pas clair merci de me le préciser et j'essayerai de créer un petit fichier excel explicatif.
Merci à vous
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
Je viens de créer un petit exemple pour essayer de faire comprendre la tâche que je souhaite réaliser :
Fichier ci-joint : https://www.cjoint.com/?BDtxcYcFAHQ
Si au moins vous pouvez m'indiquez vers où me tourner pour trouver le moyen de réaliser, via une formule ou encore mieux du VBA, une formule pour calculer automatiquement la colonne E suivant la date du jour en cours.
Bonne soirée
Je viens de créer un petit exemple pour essayer de faire comprendre la tâche que je souhaite réaliser :
Fichier ci-joint : https://www.cjoint.com/?BDtxcYcFAHQ
Si au moins vous pouvez m'indiquez vers où me tourner pour trouver le moyen de réaliser, via une formule ou encore mieux du VBA, une formule pour calculer automatiquement la colonne E suivant la date du jour en cours.
Bonne soirée
Si je comprend bien.. (pas sûr)
1er cadre : totaliser la colonne E si date < 16/4
Note : 2 x Famille H dans le cadre erreur ou normal ?
Si Normal faudra modifier par exemple Famille H(2)
2em cadre idem si date < 16/5
Et le 3, Total du 1/1 au 15/6
Sans doublon du tout ou bien en tenant compte de chaque cadre
Exemple Dans cadre 1 Famille A Nombre P = 1 -- Dans Cadre 2 Famille A Nombre P=1
Dans le total 3 ça devrait faire 1 ou 2 ??
Si j'ai tout les renseignement je pourrais voire pour faire une fonction perso en VBA, suis pas spécialiste des formules Excel.
Ca te conviendrais ?
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
1er cadre : totaliser la colonne E si date < 16/4
Note : 2 x Famille H dans le cadre erreur ou normal ?
Si Normal faudra modifier par exemple Famille H(2)
2em cadre idem si date < 16/5
Et le 3, Total du 1/1 au 15/6
Sans doublon du tout ou bien en tenant compte de chaque cadre
Exemple Dans cadre 1 Famille A Nombre P = 1 -- Dans Cadre 2 Famille A Nombre P=1
Dans le total 3 ça devrait faire 1 ou 2 ??
Si j'ai tout les renseignement je pourrais voire pour faire une fonction perso en VBA, suis pas spécialiste des formules Excel.
Ca te conviendrais ?
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Bonjour lermite222,
1er cadre : il s'agit bien de totaliser colonne E si date (inférieur ou égal) à 16/04/2012 soit le 16 inclus. [ Et pour H il s'agit d'une erreur de ma part c'est en fait L]
2eme cadre : idem si date<16/05/2012 (également 16/05/2012 inclus).
En fait ce sont les mêmes familles dans le cadre 1 et 2. Donc famille A (cadre1) = famille A (cadre2) = Famille A (cadre 3) = 1.
Et famille B (cadre 1) = famille B (cadre 2) = 2 , etc.
En vba ca serait parfait c'est ce que je cherches :)
Si tu y arrives j'aimerai apporter quelques complications à ce petit cas si ca ne t'embete pas trop
Merci pour le coup de main ;)
1er cadre : il s'agit bien de totaliser colonne E si date (inférieur ou égal) à 16/04/2012 soit le 16 inclus. [ Et pour H il s'agit d'une erreur de ma part c'est en fait L]
2eme cadre : idem si date<16/05/2012 (également 16/05/2012 inclus).
En fait ce sont les mêmes familles dans le cadre 1 et 2. Donc famille A (cadre1) = famille A (cadre2) = Famille A (cadre 3) = 1.
Et famille B (cadre 1) = famille B (cadre 2) = 2 , etc.
En vba ca serait parfait c'est ce que je cherches :)
Si tu y arrives j'aimerai apporter quelques complications à ce petit cas si ca ne t'embete pas trop
Merci pour le coup de main ;)
Je n'aime pas beaucoup de faire un travail en plusieurs fois ça nécessite souvent de tout revoir.
Alors maintenant que j'ai bien compris le départ explique
Si tu y arrives j'aimerai apporter quelques complications à ce petit cas si ca ne t'embete pas trop
Alors maintenant que j'ai bien compris le départ explique
Si tu y arrives j'aimerai apporter quelques complications à ce petit cas si ca ne t'embete pas trop
Voici un nouveau fichier avec l'ensemble des possibilités que je souhaiterais retrouver dans mon projet.
Cela n'est pas forcément évident à comprendre et si tu as besoin de plus ample précision, n'hésite pas.
Fichier ci-joint : https://www.cjoint.com/?BDurohdSzyd
merci encore de me donner un coup de main
Cela n'est pas forcément évident à comprendre et si tu as besoin de plus ample précision, n'hésite pas.
Fichier ci-joint : https://www.cjoint.com/?BDurohdSzyd
merci encore de me donner un coup de main
Ton classeur en retour
J'ai scinder les VIP et NON VIP pour un contrôle plus facile mais ça ne pose aucun problème pour les rassembler.
Il y a plusieurs incohérences dans tes explications.. Vérifie et...
Tu dis
J'ai scinder les VIP et NON VIP pour un contrôle plus facile mais ça ne pose aucun problème pour les rassembler.
Il y a plusieurs incohérences dans tes explications.. Vérifie et...
Tu dis
Bravo !
Je ne suis pas encore trop rentré dans le code pour regarder mais je n'y manquerai pas. J'ai corrigé mes petites erreurs.
Je te reposte le fichier avec les petites modifications.
Une question tout de même est -il possible de faire tous ces calculs avec un automatisme de la date du jour. C'est à dire que si j'envoie mon fichier le 28/04/2012 il calcule automatiquement tout ce qui se fait dans le premier tableau.
Si je l'envoie le 25/05/2012, il fait les calculs du second tableau...
Et ainsi de suite pour chaque mois
Voici le fichier : https://www.cjoint.com/?BDvnsvbyFgo
Je ne suis pas encore trop rentré dans le code pour regarder mais je n'y manquerai pas. J'ai corrigé mes petites erreurs.
Je te reposte le fichier avec les petites modifications.
Une question tout de même est -il possible de faire tous ces calculs avec un automatisme de la date du jour. C'est à dire que si j'envoie mon fichier le 28/04/2012 il calcule automatiquement tout ce qui se fait dans le premier tableau.
Si je l'envoie le 25/05/2012, il fait les calculs du second tableau...
Et ainsi de suite pour chaque mois
Voici le fichier : https://www.cjoint.com/?BDvnsvbyFgo
C'EST... automatique. Vérifie, change une date significative ou le nombre de personnes et tu verras.
Reste une question.. Pour février ??
Pour le 15 qui serait un dimanche, tu travail le dimanche ?
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Reste une question.. Pour février ??
Pour le 15 qui serait un dimanche, tu travail le dimanche ?
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Vesion 2 : Test sur le 14 si le 15 est un dimanche
Calcul période 2
Tu répond pas pour février mais je te signal que ça fera une erreur pour le 30 février.
Calcul période 2
Tu répond pas pour février mais je te signal que ça fera une erreur pour le 30 février.
Bonjour lermite222,
Je n'avais pas compris pour le mois de février, et je comprends d'ailleurs pas trop le problème ?
Sinon à part cela j'ai un problème pour ouvrir ton fichier, mon site entreprise m'en bloque l'accès pourrais-tu le reposter via ce site : https://www.cjoint.com/
Merci d'avance
Je n'avais pas compris pour le mois de février, et je comprends d'ailleurs pas trop le problème ?
Sinon à part cela j'ai un problème pour ouvrir ton fichier, mon site entreprise m'en bloque l'accès pourrais-tu le reposter via ce site : https://www.cjoint.com/
Merci d'avance
Tu comprend pas pour février ?? Tu a déjà vu un mois de février avec 30 jours ? moi connais pas.
Tape 30/2/2012 dans une cellule au format date et tu comprendra.
ou change le N° du mois dans la formule VIP (2 à la place de 4)
Tu sais pas lire mon fichier ? tu a pourtant su ouvrir le précédant !
Mais juste une ligne à ajouter sous...
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Tape 30/2/2012 dans une cellule au format date et tu comprendra.
ou change le N° du mois dans la formule VIP (2 à la place de 4)
Tu sais pas lire mon fichier ? tu a pourtant su ouvrir le précédant !
Mais juste une ligne à ajouter sous...
D = "15/" & Mois & "/" & Year(Now) Tu met If Weekday(D, vbSunday) = 1 Then D = D - 1
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Re,
Si ok je viens de comprendre. Je partais du principe qu'excel prenais en compte le nombre de jour dans le mois. Mai sil a un standard a 30 jours, est-ce bien ca ?
Comment du coup cela peut-il marcher pour le mois de février ?
Concernant ton fichier, je peux l'ouvrir depuis chez moi mais pas depuis mon lieu de travail, d'où le fait que j'ai su ouvrir le précédant...
Merci
Si ok je viens de comprendre. Je partais du principe qu'excel prenais en compte le nombre de jour dans le mois. Mai sil a un standard a 30 jours, est-ce bien ca ?
Comment du coup cela peut-il marcher pour le mois de février ?
Concernant ton fichier, je peux l'ouvrir depuis chez moi mais pas depuis mon lieu de travail, d'où le fait que j'ai su ouvrir le précédant...
Merci
Il n'y a pas de "standard", excel "connait" le nombre de jours dans un mois, 28, 29,30 ou 31
Et bien il faudrait tester le mois.. Si février calculer le nombre de jours maxi (Bissextile) et tester sur ce nombre de jours, 28 ou 29 à la place de 30.
Ça irait ?
Tu dis
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Et bien il faudrait tester le mois.. Si février calculer le nombre de jours maxi (Bissextile) et tester sur ce nombre de jours, 28 ou 29 à la place de 30.
Ça irait ?
Tu dis
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Remplace la fonction par..
Ne vaudrait-il pas mieux de tenir compte du nombre de jours réel dans le mois plutôt que 30 fixe ?
Tu dis
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Public Function VIP_mois(Mois As Integer, plage As Range) As Integer Dim Cel As Range, NbJour As Integer Dim NB As Integer Dim D As Date Application.Volatile NbJour = IIf(Mois = 2, DateDiff("d", "1/2/" & Year(Now), "1/3/" & Year(Now)), 30) D = NbJour & "/" & Mois & "/" & Year(Now) For Each Cel In plage If Cel = "VIP" Then If Cel.Offset(0, 1) <= D And Cel.Offset(0, 2) > D Then NB = NB + Cel.Offset(0, 4) End If End If Next Cel VIP_mois = NB End Function
Ne vaudrait-il pas mieux de tenir compte du nombre de jours réel dans le mois plutôt que 30 fixe ?
Tu dis
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
J'ai un fichier bien plus grand, où j'aurai besoin du même genre de fonction. Serait-il possible que tu me donne un coup de main dessus ?
Voici le fichier en question : https://www.cjoint.com/?BDxl0EIcTY0
Il s'agirait en fait pour la feuille FTP qui se rempli par le userform_Fontionnaire/CDI, de compter en fonction du statut dans la colonne J (quotité effective).
Si fonctionnaire ou CDI et date de saisie > 15 (du mois en cours) quotité effective = 0 soit colonne J = 0.
Pour fonctionnaire, si date de saisie <= 15 (du mois en cours) colonne J = colonne G
Pour CDI, si date de saisie <= 15(mois en cours) colonne j = z/y colonne G
Z = nombre de jours travaillés
Y = nombre de jours du mois
Soit calculé la colonne J au prorata du nombre de jours travaillés.
Tout en incorporant, les points particuliers du fichier précédant, exclusion du dimanche et prise en compte du nombre précis de jours du mois en cours.
Si tu y arrives (je n'en doute pas trop :) et si je n'abuse pas trop de ta sympathie, je te demanderai une formule pour la feuille HS et une autre pour la CDD.
Quoi qu'il en soit, je met ce fil en résolu car tu m'a été d'une grande aide ;) Merci
A+