Plages de dates triées par ordre

Résolu/Fermé
gamepaulinegameretour Messages postés 13 Date d'inscription mardi 22 juillet 2014 Statut Membre Dernière intervention 6 octobre 2014 - 22 juil. 2014 à 17:15
gamepaulinegameretour Messages postés 13 Date d'inscription mardi 22 juillet 2014 Statut Membre Dernière intervention 6 octobre 2014 - 5 oct. 2014 à 22:48
Kikou,

Idée 1

Dans plusieurs tableaux qui sont sur différentes feuilles du classeur dans excel 2003, j'ai une colonne avec des dates (jj/mm/aaaa hh:mm). Je voudrais avoir dans la colonne de droite un nombre de 1 à n me disant quelle date/heure tombe en premier, quelle date tombe en deuxième, ... Je sais que je pourrais trier les dates par ordre croissant mais les tableaux sont classés par catégorie et je préfère que le tri des tableaux reste comme il est. Je pourrais imbriquer des SI mais on est limité à 7 SI imbriqués si je me rappelle bien. Il faudrait que les dates qui n'ont pas été mises à jour et qui sont inférieur à la date actuelle ne soient pas prises en compte.

Comment feriez-vous?

Idée 2

Ce serait un tableau sur une nouvelle feuille du classeur excel 2003 qui reprendrait toutes les dates (jj/mm/aaaa hh:mm) des différents tableaux en ordre croissant. Il faudrait une liaison avec les plages de la colonne dates (jj/mm/aaaa hh:mm) de chaque tableau et que toutes ces dates soient triées en ordre croisant dans le nouveau tableau.

En même temps si c'est possible, il faudrait soit une colonne avec un lien qui renverrait vers le tableau adéquat et la ligne adéquate pour obtenir toutes les informations concernant la date (jj/mm/aaaa hh:mm) soit une reproduction de toutes les données après que les dates aient été triées. Je ne sais pas si une simple RECHERCHEV suffirait car les différents tableaux n'ont pas le même nombre de colonnes et d'informations.

J'ai toujours tendance à m'embarquer dans des idées trop complexes et à rencontrer des difficultés pour les mettre en place.

Est-ce que l'idée 2 est réalisable sans trop se prendre la tête?

BISOUS ET MERCI

7 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 22/07/2014 à 17:23
Bonjour

Idée1. Utiliser la fonction
RANG(dater;plagedate;1) pour ordre croissant
ou
RANG(dater;plagedate;0) pour ordre décroissant

Idée2.
Là, il faudrait un fichier allégé avec explications et exemples
Il faudra peut être passer par vba

Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
22 juil. 2014 à 17:24
Bonjour
pour ressortir le rang des dates (heures incluses) d'une liste de A1 à A100 à adapter:
de la plus récente à la plus ancienne
=RANG($A$1:$A$100;A1)
et l'inverse:
=RANG($A$1:$A$100;A1;1)
à tirer sur la hauteur

Pour la 2° question, ça va être difficile sans le modèle que vous pouvez déposer sur:

https://www.cjoint.com/
qui à bidonner des données confidentielles et renvier coller le lien donné par le site.

bien que le plus simple soit de reporter toutes les dates de chaque feuille par égalité sur une seule et d'utiliser le code range où le principe Excel de tri pour classerle résultat

A vous lire
0
gamepaulinegameretour Messages postés 13 Date d'inscription mardi 22 juillet 2014 Statut Membre Dernière intervention 6 octobre 2014
3 août 2014 à 21:15
Kikou,

Idée 1

Tout d'abord, je vous remercie pour votre aide. Je ne connaissais pas la fonction rang() qui est très pratique.

Idée 2

Concernant le classeur, je travaille toujours dessus mais cela demande du temps car il y a beaucoup de données à gérer et de calculs à faire. Par contre, j'ai un petit souci et quelques questions supplémentaires ...

Encodage de durée et suppression de #DIV/0!

Dans une colonne, je calcule une durée au format jj:hh:mm et parfois le résultat m'affiche #DIV/0! Je ne divise pas par 0 mais je fais une multiplication d'une colonne Temps au format jj:hh:mm égale à 01:00:00 qui correspond à un jour par un nombre calculé avec la formule de ce type: =SI(I2=0;N2=0;M2/I2) qui évite les #DIV/0!.

Le souci est que quand le résultat de ce nombre calculé est égale à 0, ma formule simple pour le calcul de durée =L2*N2 m'affiche #DIV/0!. Je pensais résoudre le problème avec la fonction si() en utilisant la formule de ce type: =SI(N2=0;O2="00:00";O2=L2*N2) mais même quand le nombre calculé est différent de 0, il m'affiche 00:00:00.

Dans différents tableaux où j'ai une colonne Durée au format jj:hh:mm et où je dois faire des encodages manuels, j'ai remarqué qu'il fallait encoder la durée en nombre d'heures/minutes et non en nombre de jours/heures/minutes. Cela est emmerdant car 4 jours 4 heures 54 minutes doit s'encoder 100:54 pour avoir un affichage 04:04:54. Donc, je dois chaque fois faire une conversion.

C'est pour cela que j'ai mis "00:00" dans la formule =SI(N2=0;O2="00:00";O2=L2*N2). Je suppose qu'à la place de O2="00:00", je dois sûrement passer par une fonction supplémentaire pour transformer un 0 en 00:00 ou en 00:00:00. Donc, j'aurais une formule de ce type =SI(N2=0;O2=FONCTION(0);O2=L2*N2).

J'ai une colonne Relevé jj/mm/aaaa hh:mm qui est un encodage manuel de la date et de l'heure qui peut varier mais ne doit pas toujours se mettre à jour d'où l'impossibilité d'utilisé la fonction maintenant(). J'utilise le Bloc-Notes et en appuyant sur F5, magie, j'obtiens l'heure et la date qui s'affiche comme ceci: 17:51 03-08-14. Ensuite, je fais simplement un copier/coller vers Excel.

Dans certains tableaux, j'encode la durée manuellement. Dans d'autres, je l'obtiens après divers calculs. Ensuite, j'ai une colonne Disponibilité qui est la somme du relevé avec la durée. Enfin, j'ai une colonne Rang où j'utilise la fonction rang() pour trier les dates numériquement (1, 2, 3, ...) avec la formule du type =RANG(P2;$P$2:$P$11;1). Si ma colonne Durée contient un #DIV/0!, ma colonne Disponibilité et Rang aussi. C'est pour cela que je veux supprimer ces #DIV/0!.

Savez-vous me dire la fonction à ajouter dans la formule =SI(N2=0;O2="00:00";O2=L2*N2) afin d'avoir une formule équivalente à ceci: =SI(N2=0;O2=FONCTION(0);O2=L2*N2)?

Savez-vous me dire pourquoi je dois encoder les durées en nombre d'heures (100:54) et non en nombre de jours 04:04:54 car c'est embêtant de devoir réaliser la conversion jours/heures/minutes en heures/minutes?

Est-ce qu'il y a une façon pour encoder la date et l'heure actuelle sans que celle-ci se mette à jour automatiquement autrement qu'en passant par un copier/coller du Bloc-Notes?

Liaison entre Excel et une sonnerie

J'ai aussi une demande peut-être un peu plus complexe. Dans un tableau, j'ai une colonne Relevé, une Colonne Durée et une Colonne Terminé. La colonne Terminé fait juste l'addition des deux autres colonnes. J'aimerais savoir s'il serait possible que quand la date et l'heure de l'ordinateur correspond à une des dates et heures de la colonne Terminé, j'aie une petite sonnerie ou une minute avant.

En fait, je joue à un jeu où je dois réaliser des actions à des moments bien précis. Au lieu d'attendre bêtement que le temps se décompte, en attendant, je fais autre chose. Le problème est qu'en général j'oublie de faire les actions aux moments voulus. Je me vois mal régler la sonnerie de mon Smartphone pour chaque action à faire.

Il faudra peut-être que j'ajoute une colonne Sonnerie avec un OUI/NON qui servirait à dire si j'ai envie que cela sonne ou non car parfois les actions se suivent rapidement et dans ce cas, je n'ai pas besoin d'avoir une sonnerie à chaque fois.

Est-ce possible de faire ceci avec Excel?

Tri des dates

J'utilise la colonne Rang afin d'avoir l'ordre des actions à réaliser dans l'ordre croissant. Quand je fais une action sur le jeu, j'encode le relevé et la durée pour l'action suivante de la même catégorie. Le problème est que je dois retrier mon tableau avec les filtres pour ravoir l'ordre croissant.

Est-ce qui aurait moyen qu'après avoir encodé le relevé et la durée, le tableau se trie tout seul sans devoir réutilisé les filtres?

Conclusion

Vous allez me dire que de temps perdu pour jouer à un jeu. C'est vrai que je pourrais occuper mon temps libre autrement mais en faisant des tableaux pour la gestion du jeu, j'apprends à mieux me servir d'Excel. Ce qui au niveau professionnel peut toujours être utile.

Un jour, il faudra que j'apprenne le langage VBA car tout ne se règle pas avec les fonctions d'Excel mais une chose à la fois ...

BISOUS ET MERCI
0
gamepaulinegameretour Messages postés 13 Date d'inscription mardi 22 juillet 2014 Statut Membre Dernière intervention 6 octobre 2014
13 août 2014 à 14:56
Kikou,

J'ai un autre souci depuis que j'ai fait les opérations détaillées dans le message précédent concernant la suppression des #DIV/0!. En fait, j'ai le message d'erreur suivant:

Attention, votre classeur contient une ou plusieurs références circulaires qui risquent d'entraîner des erreurs de calcul dans vos formules.

Remarque: une référence circulaire peut être une formule qui fait référence à sa propre valeur de cellule, ou à une cellule dépendant de sa propre valeur de cellule.


Je ne vois pas comment supprimer les #DIV/0! d'une autre façon.

Est-ce que quelqu'un peut m'aider?

BISOUS ET MERCI
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gamepaulinegameretour Messages postés 13 Date d'inscription mardi 22 juillet 2014 Statut Membre Dernière intervention 6 octobre 2014
10 sept. 2014 à 20:57
Kikou,

Je relance le sujet.

BISOUS ET MERCI
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
11 sept. 2014 à 02:49
Désolé d'avoir à te le signaler ; mais dès qu'on se rend compte de la longueur de ton message (message #3 de 21:15), on zappe vers une autre discussion !

C'est bien de fournir des explications et des précisions, mais point trop n'en faut.

Alors lance une discussion sur UNE QUESTION, et quand elle sera résolue lance une autre discussion sur une autre question : nous serons moins nombreux à en fuir la lecture ...
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
Modifié par Raymond PENTIER le 11/09/2014 à 03:18
Premier petit détail : Quand tu écris " =SI(I2=0;N2=0;M2/I2) qui évite les #DIV/0! " il y a problème, car la bonne formule serait =SI(I2=0;0;M2/I2) dans la cellule N2 ...

Deuxième plus gros détail : "Liaison entre Excel et une sonnerie" -> Excel ne peut pas émettre de son ! Tu peux seulement utiliser la Mise en Forme Conditionnelle pour modifier l'aspect d'une cellule ou d'une plage.

Troisième détail : "Est-ce qui aurait moyen que le tableau se trie tout seul sans devoir réutilisé les filtres?" Non, évidemment ! Ou alors il faudrait créer une macro en VBA ...

C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond (INSA, AFPA, CF/R)
0
gamepaulinegameretour Messages postés 13 Date d'inscription mardi 22 juillet 2014 Statut Membre Dernière intervention 6 octobre 2014
5 oct. 2014 à 22:48
Kikou Raymond,

Après une longue absence par manque de temps libre pour ce projet, je m'y replonge.

Je te remercie pour tes conseils et tes informations.

Je vais mettre cette discussion en résolu même si certains détails restent obscurs.

La prochaine fois, je ferais des plus petits messages.

BISOUS ET MERCI
0