[Résolu] Numéroter cellules non vides en fct. de l'heure

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
SmileNordic
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 20 nov. 2012 19:48

[Résolu] Numéroter cellules non vides en fct. de l'heure

Message par SmileNordic »

Bonjour,

Une nouvelle fois, j'ai envie de me :fou: .
Les tableurs me font trop de résistance. Aujourd'hui j'ai eu un problème avec un fichier. En effet, j'ai un problème qui peut sembler simple, du moins c'est l'effet que ça me faisait au début, mais après avoir cherché plusieurs dizaines de minutes de moi même, et ensuite un peu plus longtemps sur internet, je n'ai rien trouvé de valable.

Ce que j'aimerai faire, c'est obtenir une numérotation des cellules "non vides" (sur une colonne à part) ... mais variant avec l'heure.
Par le passé j'y suis arrivé, mais les cellules étaient toutes collées. Ce n'était pas difficile d'y parvenir. Ici il y a des espaces entre les cellules, espaces indéterminés. Et donc j'ai du mal avec la numérotation. :(

En fait ce qui devrait ressortir, ce que je cherche à faire, c'est la colonne 3. La numérotation doit varier selon l'heure affichée dans l'exemple en D1, mais il ne doit pas y avoir de numérotation en colonne D si la case de la colonne A sur la même ligne est vide.

Je ne sais pas si j'ai été clair. Il y a un fichier joint, si ça peut vous aider.

C'est un des derniers points qu'il me manque pour mon projet, débloquer la situation à ce point là m'aiderait beaucoup.

Donc merci par avance à l’hypothétique trouveur de solution. Merci bien. :lol:

SmileNordic.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par SmileNordic le 09 févr. 2013 19:00, modifié 6 fois.
LibreOffice 3.6.2.2, Ubuntu 12.10
OpenOffice 3.4.1, Windows 8
Jeff
GourOOu
GourOOu
Messages : 9630
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Numérotation de cellules non vides en fct de l'heure et

Message par Jeff »

Bonjour,
SmileNordic a écrit :Je ne sais pas si j'ai été clair.
Non :wink:
SmileNordic a écrit :obtenir une numérotation des cellules "non vides" (sur une colonne à part) ... mais variant avec l'heure
C'est à dire ? L'heure sert de base de calcul pour obtenir un chiffre ?
SmileNordic a écrit :il ne doit pas y avoir de numérotation en colonne D si la case de la colonne A sur la même ligne est vide
Tu peux tester avec une fonction ESTVIDE si une cellule contient ou non quelque chose.

Merci donc de développer davantage...

A +
 Ajout : Je crois que j'ai compris :?

Tu saisis une heure dans une cellule à part.

La première cellule en colonne B qui est supérieure ou égal à cette heure est classée par un indice 1, dans la mesure où la colonne A n'est pas vide.

C'est ça ?

Si tel est le cas, une ébauche dans le fichier joint.

Je ne traite pas du cas de la fonction MAINTENANT, car celle-ci renvoie l'heure à la date du jour actuel, alors qu'une heure saisie seule est considérée comme au jour zéro du calendrier de référence du tableur.
Dans le cas d'utilisation de la fonction MAINTENANT, il faut donc récupérer l'heure, puis l'ajuster à la date du jour zéro (ce qui est tout à fait possible).
smile_test.ods
 
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
gerard24
ManitOOu
ManitOOu
Messages : 3160
Inscription : 06 juil. 2008 17:08
Localisation : dans le Périgord

Re: Numérotation de cellules non vides en fct de l'heure et

Message par gerard24 »

Bonjour,

En me basant sur le résultat escompté et sur ce que j'ai cru comprendre, c'est à dire :
Numéroter les heures de la colonne B en partant de l'heure actuelle uniquement pour les cellules non vides de la colonne A.

Code : Tout sélectionner

=SI(A2="";"";RANG(B2+(B2<MOD(MAINTENANT();1));SI($A$2:$A$25<>"";$B$2:$B$25+($B$2:$B$25<MOD(MAINTENANT();1)));1))
formule matricielle à valider par Ctrl+Maj+Entrée.

Ou plus simplement avec une colonne intermédiaire :
E2

Code : Tout sélectionner

=SI(A2<>"";B2+(B2<MOD(MAINTENANT();1));"")
F2

Code : Tout sélectionner

=SI(E2<>"";RANG(E2;$E$2:$E$25;1);"")
test_smile_V2.ods
 Ajout : Salut Jeff, pas vu ton ajout.
Une variante. 
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OOodidacte
LibreOffice 6.4.5 sous Windows 10.
pour télécharger LibreOffice
SmileNordic
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 20 nov. 2012 19:48

Re: Numérotation de cellules non vides en fct de l'heure et

Message par SmileNordic »

Jeff a écrit :Je crois que j'ai compris :?

Tu saisis une heure dans une cellule à part.

La première cellule en colonne B qui est supérieure ou égal à cette heure est classée par un indice 1, dans la mesure où la colonne A n'est pas vide.

C'est ça ?
Bonjour,

En effet, c'était bien là le "problème" à résoudre. La solution que vous m'avez offerte est très efficace, je n'avais pas tenté le rang(;;), ne sachant pas comment l'utiliser. Ça m'aura permis d'en apprendre encore plus sur OOo. Merci beaucoup pour votre aide.

En ce qui concerne le maintenant(), j'avais déjà du mettre l'heure d'origine sous le format :

Code : Tout sélectionner

=HEURE(MAINTENANT())/24+MINUTE(MAINTENANT())/(60*24)
Ce qui semble également fonctionner pour ce que j'avais besoin de faire ici.

Il reste néanmoins un petit problème qui continue à me bloquer. Le problème c'est que pour les heures en doubles ou en triple, je cherche à avoir une numérotation "continue".
Pour régler le problème, j'ai ajouté une vérification, si l'heure d'une ligne est égale à l'heure de la ligne juste au dessus, et est différente de "", alors on fait +1 au classement. Et ça fonctionne, donc problème plus vraiment un problème.

La solution apportée par Gerard fonctionne aussi très bien. Je devais utiliser la technique du classement en fonction de l'heure à deux endroits sur le tableur, et j'ai décidé d'utiliser une fois chacune des propositions faites sur ce fil, comme ça si un jour je vois qu'une des deux ne me convient plus, je pourrai toujours avoir l'autre sous la main.
Je n'avais d'ailleurs aucune idée de ce qu'était ce "MOD(;)", mais après quelques recherches j'ai réussi à comprendre la logique de la formule proposée.

J'utilise donc vos deux solutions. :mrgreen: Merci beaucoup en tous les cas.
Si vous êtes curieux de savoir ce que j'en ai fait, vous pourrez voir une partie du résultat (converti sur un tableur en ligne) ici.
LibreOffice 3.6.2.2, Ubuntu 12.10
OpenOffice 3.4.1, Windows 8
SmileNordic
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 20 nov. 2012 19:48

Re: Numéroter cellules non vide et variant avec l'heure

Message par SmileNordic »

Après avoir essayé le fichier un peu plus longtemps, je me suis rendu compte qu'un problème persistait.

Je vais tenter d'expliquer le problème. Tout d'abord il faut utiliser le fichier que j'envoie sur ce message ci. Ensuite il faut s'assurer être sur la page "Flights_2".
Le problème a été mis en évidence sur la page. J'ai utilisé un fond orange pour les cases Q40 et Q45.

Dans cette colonne, les chiffre doivent se suivre mais ne doivent jamais être identiques. C'est un classement qui doit ne doit en aucun cas avoir des "ex-aequo". Tous les chiffres situés entre 1 et le plus grand nombre à utiliser doivent être utilisés, sinon en page "Dep. Board" il y aura des problèmes.

Le problème est que dans certains cas assez rares, plusieurs vols partant à la même heure (dans ce cas ci 21:30) se suivent. Et si il y a un espace entre deux vols qui ont la même heure de départ, ça cause, selon le système que j'ai mis en place, un doublon de n°. Ici il y a deux "5" et pas de "6".

J'aimerais trouver une solution pour que le "5" de Q45 devienne un "6".

Y a-t-il moyen d'y parvenir?

Merci d'avance.
 Ajout : EDIT : Fichier trop lourd (plus de 500ko) Je vous donne donc un lien dropbox, qui sera supprimé après que le problème soit réglé. 
Dropbox
 Ajout : Je me rend compte que mes explications ne sont pas très claires, mais j'ai du mal à m'exprimer pour le coup. Je vais donc, pour essayer de vous faciliter la vie, vous donner les conditions pour que les cases soient remplies ou vides :

La ligne sera vide si les jours cochés dans les colonnes AA-AH ne comprennent pas le jour actuel (aujourd'hui pour que la ligne soit remplie il faut donc que la case "SAMEDI" ou/et la case "SEMAINE" soit cochée (1è ou 3è en partant de la gauche) soit cochées. Il faut également que la case R ne soit pas vide. Les conditions sont plus floues pour la case R, ou du moins trop compliquées pour les expliquer en quelques lignes.

Les cases cochées ne peuvent pas être modifiées, elles ont un sens, les heures non plus (par exemple je ne peux pas mettre 21:30, 21:31, 21:32, etc. au lieu de plusieurs fois 21:30. Ça aurait été trop simple. :marto: 
LibreOffice 3.6.2.2, Ubuntu 12.10
OpenOffice 3.4.1, Windows 8
Jeff
GourOOu
GourOOu
Messages : 9630
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Numéroter cellules non vides en fct. de l'heure

Message par Jeff »

Je n'ai pas le temps d'explorer ton classeur, mais quelques suggestions :
SmileNordic a écrit :si l'heure d'une ligne est égale à l'heure de la ligne juste au dessus, et est différente de "", alors on fait +1 au classement
Toucher au classement est sportif, je verrai plutôt une modification de l'heure.
SmileNordic a écrit :je ne peux pas mettre 21:30, 21:31, 21:32, etc. au lieu de plusieurs fois 21:30
Mais si on joue sur les secondes  ?

En clair, je pense que si une heure fait doublon avec la ligne précédente, tu devrai rajouter des poignées de dixième de secondes indexées sur les numéros de ligne ; un truc du genre, pour une heure en colonne A :

Code : Tout sélectionner

=SI(A2=A1;A2+LIGNE(A1)/1000000;A2)
A +
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12230
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: Numéroter cellules non vides en fct. de l'heure

Message par Bidouille »

Dernière visite le : 14 Fév 2013 09:25
Vous avez lu semble t-il les réponses qui vous ont été faites sans y donner de suite.
N'ayant plus de nouvelle, on peut en déduire que le problème est résolu ou ne se reproduit plus.
Merci de baliser vous-même la prochaine fois. Un remerciement fait aussi plaisir aux bénévoles qui vous ont consacré de leur temps.
En cas d'erreur, contactez l'équipe de modération pour la réouverture du fil.