Compter différemment les valeurs consécutives (critère: <61 ou >60)

Aloha

XLDnaute Accro
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Bonsoir Jean-Noël,

Ta solution a l'air très bien!

Pour me rapprocher maintenant davantage de la réalité:

Je dois prévoir 50 personnes, jusqu'à 8 périodes d'absence par mois, et 8 types différents dabsences et je dois avouer ne toujours pas trop savoir comment organiser tout cela.

Je dois peut-être laisser tomber le système de périodes d'absences et le remplacer par un système où elles sont remplacées par les jours (si absent du 1. au 7., je ne saisis pas le début de la périod d'absence et la fin, mais faire une saisie pour chacun des jours d'absence.

C'est ce que tu as fait, si je comprends bien.

D'ailleurs, avec Excel 2007 ta fonction ne fonctionne pas et je reçois des "NOM".

Bonne soirée

Aloha
 

Aloha

XLDnaute Accro
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Re,

J'ai continué un peu la construction du système.
Ce qu'il me faudrait maintenant, ce seraient des formules remplissant les colonnes AG:AN dans les feuilles mensuelles.

Pour bien me faire comprendre:
Les jours qui m'intéressent sont autant les jours présents que les jours absents:

Sont donc comptés présents:

En entier:
P les jours réellement présents
A <=60 jours consécutifs
B <=45 jours consécutifs
C <=21 jours consécutifs
D <= 3 jours consécutifs

A moitié:

A >60
B >45
D >3

Zéro:

C >21

Ci-joint le fichier modifié.

A+

Aloha
 

Fichiers joints

JNP

XLDnaute Barbatruc
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Re :),
Ta solution a l'air très bien!
Merci ;)
Pour me rapprocher maintenant davantage de la réalité:
Je dois prévoir 50 personnes, jusqu'à 8 périodes d'absence par mois, et 8 types différents dabsences et je dois avouer ne toujours pas trop savoir comment organiser tout cela.
C'est pour cela que j'ai mis des M comme maladie, avec toutes les lettres de l'alphabet, on a encore de la marge :p... La fonction comptabilise suivant la lettre que tu veux. Si tu mets un C pour Congés, =AbsenceRectifiée(B3:B122;"C") te comptera les congés. Le calcul spécial > 60 ne gènera rien, vu que seuls les jours de maladie peuvent avoir une aussi longue période :rolleyes:.
Je dois peut-être laisser tomber le système de périodes d'absences et le remplacer par un système où elles sont remplacées par les jours (si absent du 1. au 7., je ne saisis pas le début de la périod d'absence et la fin, mais faire une saisie pour chacun des jours d'absence.
C'est ce que tu as fait, si je comprends bien.
C'est exactement ce que je t'ai préparé, sachant que pour saisir toute une période, il suffit de sélectionner la période, tapper la lettre puis Ctrl+Entrée.
D'ailleurs, avec Excel 2007 ta fonction ne fonctionne pas et je reçois des "NOM".
Là, par contre, je ne comprends pas. Je suis en 2007 et ça marche parfaitement :eek:... Tu certainement les macros qui sont interdites, il faut le changer dans le centre de confidentialité :eek:.
Bon courage :cool:
 

JNP

XLDnaute Barbatruc
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Re :),
Pour bien me faire comprendre:
Les jours qui m'intéressent sont autant les jours présents que les jours absents:
Euh :eek:...
Sont donc comptés présents:
En entier:
P les jours réellement présents
A <=60 jours consécutifs
B <=45 jours consécutifs
C <=21 jours consécutifs
D <= 3 jours consécutifs
A moitié:
A >60
B >45
D >3
Zéro:
C >21
Là, j'y comprends plus rien :confused:... On a pas le droit de travailler plus de 6 jours d'affilé... S'il n'y a pas de repos, je ne pige pas...
Ci-joint le fichier modifié.
Même avec le fichier, je ne vois vraiment pas :(...
A + :cool:
Ajout : Peut-être une lueur, il faudrait juste faire une fonction pour A, B, etc.
 

Aloha

XLDnaute Accro
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Re,

Il ne s'agit pas de travail, mais de présences et d'absences de personnes dans une institution.
Cette précision te fait peut-être mieux comprendre.

Avec ta solution il manque donc encore une fonction pour additionner mois par mois.

Bonne nuit

Aloha
 

Aloha

XLDnaute Accro
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Re,

...et là je vois un problème: s'il n'y a pas une colonne pour chaque type d'absence, dans lesquelles il y a des chiffres 0 0,5 ou 1, comment additionner des lettres? Ta fonction est-elle modifiable pour remplir cette tâche?

Bon dimanche

Aloha
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Re :),
Ma fonction est forcément modifiable, vu que "c'est moi qui l'a faite :p !".
Le problème est tout autre, c'est que tu veux calculer mois par mois... Soit dans le cas de A et B si on a plus de 60 ou 45 jours consécutifs dans un mois de 28 à 31 jours :confused:...
D'où mon récap sur un an avec un calcul direct. Evidemment, ce n'est pas parfait, vu que ça ne tient pas compte des jours consécutifs de l'année précédente, ni de l'année suivante...
Si tu souhaites réellement travailler mois par mois, il faudrait qu'au mois de janvier, tu ai les jours consécutifs antérieurs dans une colonne de gauche (A, B, C...). Ensuite, qu'à droite, tu ai chaque colonne doublée (A, A', B, B', etc.) qui contiendrait en A les jours comptés depuis le 1er janvier hors ceux qui touchent le dernier jour du mois, et en A', le nombre de jours consécutifs "en cours" à reporter sur le mois suivant. Puis pour les mois suivants, A, A', etc des 2 côtés.
Sinon, pour les fonctions, as-tu réussi à les faire fonctionner ?
A + :cool:
 

Aloha

XLDnaute Accro
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Bonjour,

Merci pour la réponse dominicale.

Je suis conscient que j'ai également besoin des jours de l'année précédente, des deux derniers mois.

"Le problème est tout autre, c'est que tu veux calculer mois par mois... Soit dans le cas de A et B si on a plus de 60 ou 45 jours consécutifs dans un mois de 28 à 31 jours ..."

Comme les jours continus sont comptés, je peux avoir eu 50 absences C continues et j'arrive donc au 60e jour au cours du mois courant (à condition qu'elle continue évidemment).

Les fonctions fonctionnent, sauf qu'il n'y a qu'une lettre possible (M) alors que j'ai besoin de 8 lettres.

Je n'ai pas totalement compris la solution que tu proposes avec A et A'.

A+

Aloha
 

JNP

XLDnaute Barbatruc
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Re :),
Je n'ai pas totalement compris la solution que tu proposes avec A et A'.
Tout simplement, A serait le total des jours A, et A' serait le total des jours A en cours, non terminés...
Je sais pas si c'est plus clair...
A + :cool:
 

ROGER2327

XLDnaute Barbatruc
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Bonjour à tous
Je sais bien que ma proposition du message #10 ne convient pas à Aloha, mais jetez tout de même un coup d'œil au classeur joint.​
ROGER2327
#2666
 

Fichiers joints

Aloha

XLDnaute Accro
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Bonne après-midi,

Roger, le système a vraiment l'air de marcher! Merci beaucoup!

Seulement, lorsque je veux ajouter d'autres mois et compléter la liste des jours dans Année, je reçois plein plein de "Valeur". J'ai joint le fichier modifié.

A+

Aloha
 

Fichiers joints

Aloha

XLDnaute Accro
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

..suite..

Je viens de remarquer: Lorsque dans le tableau sur fond vert je veux étendre la rangée de la formule dans H9 d'une seule unité, jusqu'au 1.5.2010 (après avoir introduit cette date), la formule s'affiche au lieu de la valeur!

=ValSeuil(DECALER($A$3:$A$123;0;EQUIV($F$8;$B$2:$AY$2;0));$F9;H$8),
et lorsque je remets le chiffre 2, la formule reste affichée.

Aloha
 

JNP

XLDnaute Barbatruc
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Re :),
Désolé, je pense que le problème vient de ma fonction
Code:
Function RechercheAbsence(DateCherchée, Nom As String) As String
Application.Volatile
Dim Mois As String
Select Case Month(DateCherchée)
Case 1
Mois = "JANVIER"
Case 2
Mois = "FEVRIER"
Case 3
Mois = "MARS"
Case 4
Mois = "AVRIL"
End Select
With Sheets(Mois)
RechercheAbsence = .Cells(.Cells.Find(Nom).Row, Day(DateCherchée) + 1)
End With
End Function
Je m'étais arrêté au mois d'avril, mais il faut bien sûr la compléter...
Roger, toujours aussi efficace, j'ai pas tout suivi, mais ça marche ;).
Bonne soirée :cool:
 

Aloha

XLDnaute Accro
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Bonsoir,

J'avais complété la fonction avec les mois manquants, et j'ai également continué les jours dans ANNEE jusqu'au 31.12., mais dès que je touche à quoi que ce soit et que j'apporte une modification le résultat sont des "VALEUR" partout, sans exception!

Bonne nuit

Aloha
 

JNP

XLDnaute Barbatruc
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Re :),
Je viens d'ouvrir le fichier joint, et si tu as complété la fonction, les feuilles de Juin à Décembre n'existent pas, donc la fonction ne peut que donner "#VALEUR!"...
Bon courage :cool:
 

Aloha

XLDnaute Accro
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Bonjour,

Je viens de compléter les feuilles des mois, mais cela ne change malheureusement rien!

Bonne journée

Aloha
 

Fichiers joints

JNP

XLDnaute Barbatruc
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Re :),
Ton zip est vide :rolleyes:...
A + :cool:
 

JNP

XLDnaute Barbatruc
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Re :),
2 choses :
Il manque dans la fonction le cas 5 : MAI.
Dans tes feuilles de MAI à DECEMBRE, le nom des personnes Personne1 et 2, n'est pas rempli, donc évidemment, ça le fait pas :p...
Pour éviter le problème, j'ai modifié la fonction en vérifiant si le Nom cherché est "" et en cas d'erreur dans la recherche de date, je renvoie "Néant"
Code:
Function RechercheAbsence(DateCherchée, Nom As String) As String
[COLOR=red][COLOR=#000000]Application.Volatile[/COLOR]
If Nom = "" Then
RechercheAbsence = ""
Exit Function
End If
[/COLOR]Dim Mois As String
Select Case Month(DateCherchée)
Case 1
Mois = "JANVIER"
Case 2
Mois = "FEVRIER"
Case 3
Mois = "MARS"
Case 4
Mois = "AVRIL"
[COLOR=red]Case 5[/COLOR]
[COLOR=red]Mois = "MAI"[/COLOR]
Case 6
Mois = "JUIN"
Case 7
Mois = "JUILLET"
Case 8
Mois = "AOUT"
Case 9
Mois = "SEPTEMBRE"
Case 10
Mois = "OCTOBRE"
Case 11
Mois = "NOVEMBRE"
Case 12
Mois = "DECEMBRE"
End Select
[COLOR=red]On Error GoTo Fin[/COLOR]
With Sheets(Mois)
RechercheAbsence = .Cells(.Cells.Find(Nom).Row, Day(DateCherchée) + 1)
End With
[COLOR=red]On Error GoTo 0[/COLOR]
[COLOR=red]Exit Function[/COLOR]
[COLOR=red]Fin:[/COLOR]
[COLOR=red]RechercheAbsence = "Néant"[/COLOR]
End Function
Bon courage :cool:
 

ROGER2327

XLDnaute Barbatruc
Re : Compter différemment les valeurs consécutives (critère: <61 ou >60)

Bonjour à tous
Ci-joint une version sur douze mois. Il y a encore de l'optimisation à faire pour rendre le fonctionnement plus rapide, mais le choix d'utiliser des formules au lieu d'une procédure globale ne permet guère d'alléger et d'accélérer beaucoup...​
ROGER2327
#2667
 

Fichiers joints

Discussions similaires


Haut Bas