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

Aloha

XLDnaute Accro
Bonjour,

Comment construire une formule qui compte les valeurs d'un groupe consécutif en entier jusqu'à 60 et à moitié au-dessus de 60?

Voir l'exemple joint qui est, je le pense, assez éloquent.

Merci pour toute aide.

Aloha
 

Pièces jointes

  • Valeurs comptées différemment.xls
    14 KB · Affichages: 148
Dernière édition:

Aloha

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

...j'ai modifié le fichier pour ajouter les noms et j'ai essayé d'adapter le code, pour faire apparaître les types d'absence ± définitifs, mais il faut encore votre main de maître pour le faire fonctionner.

Il y aurait peut-être une méthode plus élégante pour ajouter les noms, et peut-être une autre pour réduire les feuilles des mois aux personnes réellement inscrites pendant ce mois.

Bonne journée

Aloha
 

Pièces jointes

  • Aloha0202.zip
    48.8 KB · Affichages: 30
  • Aloha0202.zip
    48.8 KB · Affichages: 33
  • Aloha0202.zip
    48.8 KB · Affichages: 39
Dernière édition:

Aloha

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

J'ai apporté encore quelques corrections au code, suite aux modifications dans les feuilles.
Aloha
 

Pièces jointes

  • Aloha0202.zip
    42.3 KB · Affichages: 41
  • Aloha0202.zip
    42.3 KB · Affichages: 41
  • Aloha0202.zip
    42.3 KB · Affichages: 39
Dernière édition:

Aloha

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

Bonjour Roger,

Je viens seulement de voir votre dernier message; c'est le dernier de la page 3 et j'étais à la page 4.

J'ai dû redémarrer Excel pour que cela marche, sinon les calculs ne se sont pas faits.
Cela marche, oui!
Je suis très mal placé pour dire quelque chose de non positif sur ce travail merveilleux, mais le fait est qu'Excel traîne un petit peu lorsqu'on a saisi une lettre.
J'ai saisi un P au 1. d'un mois et je l'ai copié jusqu'au 31. Il y a le sablier pendant tout de même un petit peu plus d'une minute.
Ce qui ne serait pas grave si on pouvait faire faire les calculs seulement après avoir introduit toutes les lettres.
Peut-être faire déclencher les calculs seulement en appuyant sur un bouton.
Sinon, un peu d'accélération serait positif.
Je me répète: je suis mal placé pour critiquer le système!

A+

Aloha
 
Dernière édition:

Aloha

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

Bonjour,

Personne ne me répond plus!

Est-ce que quelqu'un voit éventuellement une possibilité pour accélérer ce système?

Vous comprendrez que j'aimerais savoir où j'en suis, si je peux m'attendre encore à un soutien ou non. Dans ce cas je serai obligé de chercher une autre piste...

Merci d'avance de bien vouloir me répondre.

Bonne journée

Aloha
 

JNP

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

Re :),
Le temps perdu dans les méandres et revirements, sans compter la non prise en compte de problèmes soulevés dès le début, emousse forcément la volontée farouche de te venir en aide ;)...
Le fichier fonctionne, tout ce qui reste, c'est des problèmes de lenteurs si je t'ai bien lue. Et Roger doute de pouvoir optimiser le temps de calcul, donc moi aussi :p...
Le plus simple maintenant est de débrancher le calcul automatique, et de faire F5 quand tu veux calculer le fichier après une ou plusieurs saisies, et éventuellement, pour éviter les problèmes, forcer le calcul automatique juste à l'ouverture ou à la fermeture du fichier. S'amuser à programmer de l'événementielle pour basculer de calcul automatique à manuel et "vice et Versace" reviendrait à faire la même chose qu'Excel, calculer à chaque saisie :D... en alourdissant un peu plus le fichier :(.
Bon courage :cool:
 

Aloha

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

Bonjour Jean-Noël,

Merci de m'avoir répondu, même si tu me tires les oreilles. S'il y a eu des "méandres" c'est que je n'ai pas vu clair tout de suite. A propos du reproche de la "non prise en compte de problèmes soulevés dès le début", je pense y avoir déjà répondu!

Où as-tu lu que Roger aurait affirmé ne pas pouvoir optimiser davantage?
Le 1.2. à 21:22 il a bien écrit:

"C'est déjà plus rapide, mais loin d'être optimisé."

Dans son dernier message avant qu'il ne se taise, le.2.2. à 8:45 il a écrit e.a.:
"Il serait bon que vous testiez la dernière version proposée et que vous disiez si
elle fait le travail souhaité ;
elle fonctionne avec une vitesse admissible."


J'ai répondu à ces questions et depuis il n'a plus donné signe de vie!

Tes reproches n'amoindrissent en rien ma gratitude envers toi-même et envers Roger. Sans vous deux je n'aurais rien du tout comme solution!!

En ce qui concerne la proposition que tu fais, à savoir mettre le mode de calcul en manuel, j'ai eu cette idée moi-même, mais j'ai dû constater que l'exécution du code VBA n'est pas stoppée par cette action, autant sur Mac que sur PC.

Des fois Excel demande s'il doit ouvrir le fichier avec les macros activées ou non; peut-être que cela serait une possibilité? Seulement, avec ce fichier il ne le demande pas!

Peut-être y a-t-il une solution à cela, mais mon plus gros problème avec le fichier, c'est que les codes ne sont pas encore les codes définitifs; j'ai essayé d'introduire les codes définitifs, avec leurs conditions en partie modifiées (cela ne dépend pas de moi!), mais je n'arrive pas à faire fonctionner le fichier modifié. Idem lorsque j'ajoute 2 colonnes derrière la colonne contenant les noms.

Bonne journée

Aloha
 
Dernière édition:

JNP

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

Re :),
Merci de m'avoir répondu, même si tu me tires les oreilles. S'il y a eu des "méandres" c'est que je n'ai pas vu clair tout de suite. A propos du reproche de la "non prise en compte de problèmes soulevés dès le début", je pense y avoir déjà répondu!
Ce n'est pas exactement ce que je voulais dire, je parlais d'une lassitude qui survient forcément plus tôt quand le parcours a été cahotique, et j'avais bien lu ta réponse ;)
Où as-tu lu que Roger aurait affirmé ne pas pouvoir optimiser davantage?
Le 1.2. à 21:22 il a bien écrit:
"C'est déjà plus rapide, mais loin d'être optimisé."
Dans son dernier message avant qu'il ne se taise, le.2.2. à 8:45 il a écrit e.a.:
"Il serait bon que vous testiez la dernière version proposée et que vous disiez si
elle fait le travail souhaité ;
elle fonctionne avec une vitesse admissible."
J'ai répondu à ces questions et depuis il n'a plus donné signe de vie!
Tu as posté 2 fois entre temps, as-t-il vu le 3ème, s'il a pensé que tu ne tenais pas compte de son message ? Pour l'optimisation, je connais les qualités de Roger, et quand il disait "loin d'être optimisé", il ne parlait pas de son travail, mais du fait que le fichier ne répondait pas à la vitesse de la lumière, tout au moins, c'est ainsi que je l'ai ressenti :rolleyes:.
Tes reproches n'amoindrissent en rien ma gratitude envers toi-même et envers Roger. Sans vous deux je n'aurais rien du tout comme solution!!
Ce ne sont pas des reproches, juste des constatations. Et tant mieux si notre aide t'apporte quelque chose, c'est un peu notre but, non :p ?
En ce qui concerne la proposition que tu fais, à savoir mettre le mode de calcul en manuel, j'ai eu cette idée moi-même, mais j'ai dû constater que l'exécution du code VBA n'est pas stoppée par cette action, autant sur Mac que sur PC.
A ce niveau là, tu peux faire un test. Dans les fonctions, tu mets en commentaire (avec un ' ) la ligne suivante
Code:
[COLOR=seagreen]' Application.Volatile[/COLOR]
c'est la ligne de code qui demande à la fonction de se recalculer à chaque changement. Le calcul sur ordre devrait fonctionner ensuite.
Des fois Excel demande s'il doit ouvrir le fichier avec les macros activées ou non; peut-être que cela serait une possibilité? Seulement, avec ce fichier il ne le demande pas!
Ça ne dépends pas du fichier, mais des préférences d'Excel (centre de sécurité). Le problème, c'est que si tu désactives les macros, il te faudra fermer le fichier et le réouvrir pour les activer, Excel (et c'est bien dommage) ne sait pas activer les macros aprés que celle-ci aient été désactivées (le contraire non plus...) :mad:.
Bonne journée, et dis nous si l'arrêt du Volatile te permets d'utiliser F5 :cool:
 

Aloha

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

Re,

Que vois-tu comme optimisation possible à mon niveau? J'ai une feuille par mois et une ligne par personne, ainsi que les différents types d'absence.
Il me faut tout cela, sauf, si je reviens au début où je voulais seulement saisir le premier et le dernier jour d'une absence ainsi que le type; là je n'ai pas à effectuer une saisie par jour et par personne.

J'ai suivi ton conseil; en termes de rapidité cela ne change hélas rien du tout.
Ce n'est d'ailleurs pas moi qui vais utiliser ce fichier; j'entends déjà les gens -dont certains sont très réticents envers tout ce qui est ordinateur- rouspeter lorsqu'il remplissent un mois, qu'ils copient un P du 1er au dernier jour pour une personne qui était présente tout le temps et qu'ils doivent attendre une minute entière avant de pouvoir aborder la prochaine personne!

Désolé de t'énerver avec cela.

Je ne connais pas la fonction de F5, mais celle de F9 (forcer à calculer). Lorsque j'appuie sur F5 je reçois une petite fenêtre "Atteindre"!

Je me demande si je ne devrais pas revenir à la version où il y a les formules, car là je peux contrôler les calculs et en plus j'arrive à faire des modifications au niveau de la structure (ajouter des colonnes p.ex.) sans casser tout le système, alors qu'avec du pur VBA je dépends toujours d'aide extérieure! Qu'en penses-tu?

A+

Aloha
 
Dernière édition:

JNP

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

Re :),
Pour F9, c'est une erreur de ma part, F5 sert sur pratiquement tout les logiciels à actualiser, mais pas sur Excel, effectivement c'est F9 :eek:...
J'ai ouvert le fichier de Roger, et effectivement, avec les événementielles, le calcul se lance en automatique, et sans les événementielles, nous ne saurons pas quelles sont les cellules qui ont changé...
Si tu repart par formule, replonge toi dans le raisonnement que je t'avais donné ICI, je pense qu'il y a moyen de faire, mais je n'ai pas trop le temps pour m'y pencher aujourd'hui.
Pour l'utilisateur, c'est sûr que c'est long, mais s'il préfère tout faire à la main :p...
Bon courage :cool:
 

Aloha

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

Re,

J'ai réussi à faire fonctionner le système de formules.
Le problème que je risque d'avoir c'est au niveau de la fonction contenant la définition des différents types d'absence, surtout s'il n'y a pas que 2 chiffres possibles pour une même lettre (1 et 0,5) mais 3 (1, 0.5 et 0).

Il y a par exemple:
base = Array((Array("U" , 45 , 0.5), ...

qui a pour effet que lorsqu'il y a ≤45 U, U=1 et au-delà U=0.5

Que faut-il changer dans le code lorsqu'il y a une 3e valeur possible, p.ex.: dans le cas où U≤45: U=1; U>45 et ≤60: U=0.5; U>60: U=0?

A+

Aloha
 
Dernière édition:

david84

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

Bonjour Aloha, le forum,
j'ai du mal à comprendre ta demande.
Peux-tu mettre un exemple sur ton fichier en expliquant ce que tu veux et en inscrivant le résultat attendu dans la cellule où tu veux placer la formule ?
 

Aloha

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

Bonjour,

J'ai essayé d'illustrer à l'aide d'un exemple: la première personne a 22 C en janvier; comme ceux jusqu'à 14 sont comptés en entier, elle a donc: 14 + (8/2) = 18
La 3e:30 en janvier, donc: 14 + (16/2) = 22 jours présents (+ les vrais jours présents évidemment et les jours résultant des autres codes)
Comme les C de la 3e personne continuent jusqu'en février sans interruption, il faut donc les considérer tous ensemble: 30 en janvier + 28 en février = 58 C
De ces 58 sont comptés en entier les premiers 14, à moitié du 15e au 45e, et 0 ceux au-dessus du 45e.

Et mon message précédent concerne donc les définitions de ces seuils qui jusqu'ici étaient au nombre de 2 seulement (1 et 0.5) et dont il y en a maintenant qui peuvent prendre 3 valeurs (1, 0.5 et 0).

J'espère que je me suis fait comprendre.

Bonne après-midi

Aloha
 

Pièces jointes

  • Aloha 0502.zip
    26.6 KB · Affichages: 27
Dernière édition:

ROGER2327

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

Re...
Je vous prie d'accepter mes plus plates excuses pour ne pas travailler plus vite. Il se trouve que, ne jouissant pas de fortune personnelle et malgré mon grand âge, il m'arrive aussi de devoir travailler pour manger. J'espère que ce n'est pas une mauvaise raison.
Quant à votre problème, faisons le point.
En fait, il ne s'agit pas du tout d'un décompte de périodes continues avec prise en compte d'un seuil de 60.
Les catégories A, B, C, etc. étaient bidon : il fallait lire F, V, C,U et R.
Le décompte peut être sur une période continue ou discontinue (critère V).
Il peut n'y avoir aucun seuil (critère P), un seuil (critères F, V), deux seuils (critère C), un nombre de seuils à deviner (critères R, U) !
La structure de la feuille dépend de l'humeur du moment. Il convient pour l'instant d'ajouter deux colonnes.
Sur ces bases, voyez une proposition dans le classeur joint.
J'espère qu'au moment où j'envoie ce message, le problème n'a pas radicalement changé.

(...) j'entends déjà les gens -dont certains sont très réticents envers tout ce qui est ordinateur- rouspeter lorsqu'il remplissent un mois, qu'ils copient un P du 1er au dernier jour pour une personne qui était présente tout le temps et qu'ils doivent attendre une minute entière avant de pouvoir aborder la prochaine personne! (...)
C'était (peut être) vrai sur les premiers essais. Avec cette nouvelle version, il faut tout au plus 1,9 secondes pour valider une saisie avec une machine portable d'il y a trois ans dotée d'un mégaoctet de mémoire vive et d'un processeur cadencé à 1,6 MHz. Ce n'est pas encore merveilleux, mais cela permet plus de mille huit cents saisies à l'heure. D'autant que s'il s'agit de saisir le même code sur toute la ligne, on peut le faire en une seule fois : sélectionner les cellules, saisir le code une fois, valider par Ctrl + Entrée.

Je me demande si je ne devrais pas revenir à la version où il y a les formules, car là je peux contrôler les calculs et en plus j'arrive à faire des modifications au niveau de la structure (ajouter des colonnes p.ex.) sans casser tout le système, alors qu'avec du pur VBA je dépends toujours d'aide extérieure! Qu'en penses-tu?
Rien.
Enfin si : je suis impatient de voir une version "tout-formules" plus rapide et pas beaucoup plus lourde...​
ROGER2327
#2696
 

Pièces jointes

  • Aloha_2696.zip
    38.9 KB · Affichages: 34

Aloha

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

Bonjour Roger,

Merci de donner de vos nouvelles. Merci beaucoup pour la nouvelle solution qui est, je pense, la bonne!

Je suis tout à fait conscient que vous ne me devez rien du tout, c'est moi qui suis votre débiteur!

Si j'ai pu paraître impatient, c'est parce que je ne savais pas si je pouvais encore m'attendre à une aide de votre part ou non. Si j'avais eu l'information que c'était le cas, je ne vous aurais pas dérangé. Voilà aussi la raison de ma réflexion sur une solution par formules, parce qu'avec vos fonctions je serais probablement capable de me débrouiller plus ou moins seul avec une telle solution.

Comprenez svp que les critères ne dépendent pas de mon humeur à moi et s'il y en a 2 qui ne sont pas du tout ou partiellement définis, ce n'est pas dû à mes lubies à moi non plus!

N'ayez crainte, la structure n'a pas changé depuis, mais pour être franc, elle risque de changer encore légèrement puisque je ne sais pas encore s'il y a d'autres données concernant les personne qu'il faudrait saisir (p.ex. date de naissance et éventuellement un numéro). La conséquence en serait l'ajoute d'une ou deux colonnes supplémentaires.

La description que vous donnez des critères est tout à fait exacte.

La vitesse est beaucoup plus grande maintenant et tout à fait acceptable.
J'ai fait quelques tests et tout semble fonctionner à la merveille!

Un manque qu'il y a encore, mais qui ne jouera qu'en janvier 2011, c'est la non prise en compte des jours de la fin de l'année précédente (pour le seuil de 60 il faut donc remonter jusque début novembre au maximum). Je ne vois pas encore trop comment résoudre ce problème. Peut-être en ajoutant 2 feuilles pour novembre et décembre de l'année précédente? Je pourrais mettre les données par copier/coller. Evidemment cela augmenterait le nombre de personnes considérablement.

Merci encore et bonne journée

Aloha.
 

Aloha

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

Re,

Encore une petite question: Je voulais faire une liste de validation et j'ai re-remarqué que la liste doit être sur la même feuille.
Pour éviter encore une fois des formules pour copier la lsite dans chaque feuille mensuelle depuis "Base", y aurait-il une possibilité facile pour limiter par VBA la saisie aux caractères représentant les critères?

A+

Aloha
 

Discussions similaires

Réponses
306
Affichages
25 K