Microsoft 365 Besoin d'aide tableau créneaux horaires et retards

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 :

1597840349594.png


Ainsi, les horaires pourraient être automatiquement triés avec leur nom de ligne respective. Chaque ligne peut avoir plusieurs heures, c'est pour ça qu'elles sont multiples. Par exemple, "ANGIRU" a ici : 0:20:00, 0:15:00, 0:10:00.

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

@njhub m'a envoyé ce fichier qui peut m'aider, toutefois, j'ai juste #REF! et des cases blanches. Les horaires ne s'affichent pas comme sur l'exemple ci-dessus que j'aimerais obtenir.

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

Si vous pouviez me trouver une solution, ce serait génial,

Je vous remercie d'avance
 

Pièces jointes

  • 1597840315786.png
    1597840315786.png
    62 KB · Affichages: 31
  • Drokarre_DELAYS (Time).xlsx
    94.5 KB · Affichages: 4

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 :

Code:
en A2
=SIERREUR(INDIRECT(ADRESSE(LIGNE();$K2-1;4;1;"Feuil1");1);"")   

en B2
=SI(ET($M2>=1/240;$M2<=B$1);$M2;"")   

en C2
=SI(ET($M2>B$1;$M2<=C$1);$M2;"")   

en D2
=SI(ET($M2>C$1;$M2<=D$1);$M2;"")   

en E2
=SI(ET($M2>D$1;$M2<=E$1);$M2;"")   

en F2
=SI(ET($M2>E$1;$M2<=F$1);$M2;"")   

en G2
=SI(ET($M2>F$1;$M2<=G$1);$M2;"")   

en H2
=SI(ET($M2>G$1;$M2<=H$1);$M2;"")   

en I2
=SI(ET($M2>H$1;$M2<=I$1);$M2;"")   

en J2
=SI(ET($M2>I$1;$M2<=J$1);$M2;"")

en K2
=EQUIV($K$1;$Feuil1.$A$1:$F$1;0)

en L2
=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
=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

Une proposition PowerQuery

Actualiser par Données, Actualiser Tout

Bonjour Chris,

Tout d'abord merci beaucoup pour votre aide !

Il marche parfaitement, si je réécris une ligne ou une heure une par une, cela actualise bien dans tes tableaux départs/arrivées.

Toutefois, lorsque fais copier/coller avec d'autres résultats, le tableau ne peut plus actualiser.

1597909470679.png


Par exemple, ici, j'ai copié/collé les données d'un autre mois dans les deux premières colonnes (départs). J'aimerais faire la même chose sur les colonnes arrivées.

Malheureusement, le tableau 'départs' ne veut plus s'actualiser une fois que j'ai copié/collé d'autres données.

1597909643981.png


Par conséquent, les anciennes données restent inscrites dans les tableaux 'départs' et 'arrivées'.

Peut-être que cela peut sembler simple à corriger, mais je ne vois pas du tout comment fixer le problème pour qu'il puisse s'adapter à mes changements dans la 'Feuil1'.

Je suis allé dans l'éditeur Powerquery, toutefois c'est tout nouveau pour moi et j'ai du mal à comprendre :oops:

Merci d'avance pour l'aide que vous m'apporterez,

Drokarre
 

Pièces jointes

  • DELAYS_EXPORT_drokarre.xlsm
    871.7 KB · Affichages: 4

chris

XLDnaute Barbatruc
Bonjour

Je ne comprends ce que tu constates : les 2 tableaux s'actualisent bien.

Que te manque-t'il ?

Du moment que les nouvelles lignes sont bien ajoutées aux tableaux structurés nommés T_Depart et T_Arrivee, elles sont traitées.

EDIT : ton code ne doit pas supprimer ou effacer le contenu des tableaux, juste les ListRows
VB:
Sub Vider()
    [T_Depart].ListObject.DataBodyRange.Delete
    [T_Arrivee].ListObject.DataBodyRange.Delete
End Sub

 
Dernière édition:

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG