Microsoft 365 Formule / VBA tableau : nom de ligne et délais par créneau

Drokarre

XLDnaute Nouveau
Bonjour à tous et à toutes,

J'aimerais si possible avoir un tableau qui filtrerait les lignes/heures par créneau horaire.

Exemple de tableau :

NOM LIGNE6 min - 10 min10 min - 20 min20 min - 30 min30 min - 1 h1 h - 2 h
NTEPAR00:06:00
SXRBUD00:23:00
TLSMAD00:13:00
LILLON01:25:00

Ainsi, les horaires pourraient être automatiquement triés avec leur nom de ligne respective. Malheureusement, chaque ligne peut avoir plusieurs heures. Par exemple, "NTEPAR" peut avoir trois délais différents : 00:06:00, 01:03:00, 65:02:00. Il faudrait donc trouver un moyen pour tous les voir sur le tableau... Créer plusieurs lignes pour chaque nom de ligne, par exemple.

Si possible, ce tableau pourrait aller jusqu'à 300 heures. Bien-sûr, il ne s'agirait pas de continuer avec des créneaux par heure après la 6 ème colonne "1h - 2h" mais de plutôt continuer avec des créneaux du type : 2 h - 10 h / 10 h - 30 h / 30 h - 100 h et enfin 100 h - 300 h.

En définitive, il faudrait que ce tableau puisse se remplir automatiquement sur la base des colonnes A ; B ; E et F (qui peuvent descendre plus bas puisque je ferai un copier/coller avec différentes données).

Je vous remercie d'avance !
 

Pièces jointes

  • DELAYS (Time).xlsx
    20.4 KB · Affichages: 10

ChTi160

XLDnaute Barbatruc
Bonsoir Drokarre

je pense que tu devrais dans ton Fichier , ajouter une feuille avec justement la Liste de tes Créneaux !
ca pourrait peut être aider !
et mettre un exemple des cas (particuliers possibles)
ex :
Par exemple, "NTEPAR" peut avoir trois délais différents : 00:06:00, 01:03:00, 65:02:00. Il faudrait donc trouver un moyen pour tous les voir sur le tableau... Créer plusieurs lignes pour chaque nom de ligne, par exemple.
bonne fin de Soirée
jean marie
 

Drokarre

XLDnaute Nouveau
Bonjour à vous,

Désolé Jean-Marie, en effet j'aurais pu ajouter une feuille !

Merci pour le fichier, c'est exactement ce que je souhaite !

Toutefois, j'ai essayé de modifier les valeurs mais sans résultat.

J'ai juste #REF! et des cases blanches. Par conséquent, je ne vois pas du tout les horaires..

Résultat :

1597821062135.png


J'aimerais que les cellules soient automatiquement remplies avec les retards sous les créneaux correspondants en cliquant sur le filtre "retard départ" ; "retard arrivée", exemple ci-dessous :

1597822127488.png


En cliquant sur "retard départ" et en switchant sur "retard arrivée" (la case en jaune fluo) j'aimerais que le tableau puisse également traiter les données du tableau "LINE ; RETARD ARRIVEE" sur la Feuil1. Ainsi, en définitive, le tableau me permettrait d'observer les retards sur les départs et les arrivées d'un simple clic.

J'espère être assez clair, n'hésitez pas si vous avez besoin d'une quelconque précision

Bonne journée à vous et merci d'avance pour votre aide
 

Pièces jointes

  • Drokarre_DELAYS (Time).xlsx
    94.5 KB · Affichages: 2

njhub

XLDnaute Occasionnel
Bonjour Drokarre,

Ca fonctionne conformément à votre demande chez moi, comme vous avez des #REF dans vos cellules, c'est que les formules sont mal interprétées par excel, transcrivez les formules ci dessous et étendez les vers le bas tant que nécessaire.

En feuille F2 les formules suivantes :

en A2
Code:
=SIERREUR(INDIRECT(ADRESSE(LIGNE();$K2-1;4;1;"Feuil1");1);"")
en B2
Code:
=SI(ET($M2>=1/240;$M2<=B$1);$M2;"")
en C2
Code:
=SI(ET($M2>B$1;$M2<=C$1);$M2;"")
en D2
Code:
=SI(ET($M2>C$1;$M2<=D$1);$M2;"")
en E2
Code:
=SI(ET($M2>D$1;$M2<=E$1);$M2;"")
en F2
Code:
=SI(ET($M2>E$1;$M2<=F$1);$M2;"")
en G2
Code:
=SI(ET($M2>F$1;$M2<=G$1);$M2;"")
en H2
Code:
=SI(ET($M2>G$1;$M2<=H$1);$M2;"")
en I2
Code:
=SI(ET($M2>H$1;$M2<=I$1);$M2;"")
en J2
Code:
=SI(ET($M2>I$1;$M2<=J$1);$M2;"")
en K2
Code:
=EQUIV($K$1;$Feuil1.$A$1:$F$1;0)
en L2
Code:
=SI(A2="";"";SI(A2=A1;EQUIV(A2;INDIRECT(CONCATENER(ADRESSE(L1+1;K2-1;4;1;"Feuil1");":";ADRESSE(1000;K2-1;4;1;"Feuil1"));1);0)+L1;EQUIV(A2;INDIRECT(CONCATENER(ADRESSE(1;K2-1;4;1;"Feuil1");":";ADRESSE(1000;K2-1;4;1;"Feuil1"));1);0)))
en M2
Code:
=SI(A2="";"";SIERREUR(INDIRECT(ADRESSE(L2;K2;4;1;"Feuil1");1);""))

Drokarre_Retard arrivée.png


Drokarre_Retard départ.png


;)
 

Drokarre

XLDnaute Nouveau
Bonjour @njhub,

Tout d'abord merci pour ton grande aide, je vois que ton fichier marche bien sur ton Excel !

J'ai bien recopié/collé tes formules dans chaque cellule A2,B2,C2....

Toutefois, ça ne marche toujours pas... Je t'envoie le fichier si tu peux vérifier ce qui ne colle pas.
 

Pièces jointes

  • Drokarre_DELAYS (Time).xlsx
    84.8 KB · Affichages: 5
Dernière édition:

njhub

XLDnaute Occasionnel
Bonjour Drokarre,


Corrigez en L2 par la formule ci dessous et étendez la vers le bas tant que nécessaire.

Code:
=SI(A2="";"";SI(A2=A1;EQUIV(A2;INDIRECT(CONCATENER(ADRESSE(L1+1;K2-1;4;1;"Feuil1");":";ADRESSE(1000;K2-1;4;1));1);0)+L1;EQUIV(A2;INDIRECT(CONCATENER(ADRESSE(1;K2-1;4;1;"Feuil1");":";ADRESSE(1000;K2-1;4;1));1);0)))

Pour info il fallait enlever

"Feuil1" de ADRESSE(1000;K2-1;4;1;"Feuil1"), ce qui donne ADRESSE(1000;K2-1;4;1)

;)
 

Discussions similaires

Réponses
1
Affichages
357

Statistiques des forums

Discussions
311 709
Messages
2 081 769
Membres
101 816
dernier inscrit
Jfrcs