Mak_tarmak
XLDnaute Junior
Bonjour,
Je sollicite votre aide pour utiliser la fonction Dictionary dans une macro ou une autre méthode plus judicieuse mais toujours en macro car j'ai beaucoup de données à traiter qui évoluent sans cesse.
Je manipule très mal les imbrications de données qui dépendent de plusieurs critères dans des onglets différents mais je souhaite apprendre.
Voici ma problématique :
Dans l'onglet ELT_SESSIONS, en colonne B j'ai mes codes sessions.
Dans l'onglet liste_sessions, ceux-ci se trouvent en colonne A.
Pour chaque code session dans B, je recherche l'équivalence dans A.
Si elle est trouvée, je regarde dans la colonne G de liste_sessions.
Je prends chaque valeur unique de cette colonne pour le code session concerné et pour chaque valeur unique je soustrais les date/heure de J et I pour obtenir une durée en heures avec une décimale. Ensuite, je fais la somme des durées de chaque segment unique et je la reporte dans la colonne L de ELT_SESSIONS pour chaque session.
Pour exemple, je prends le code session 6086.
Il se trouve dans la colonne B de ELT_SESSIONS mais aussi dans la colonne A de liste_sessions.
Pour ce code session, je regarde dans G et je vois qu'il y a 15 valeurs mais seulement 3 segments uniques : le 1, 2 et 2851 (il peut en avoir 10 ou plus différents)
Pour la première valeur unique 1, je soustrais 08/03/2023 17:30 Europe/Paris en J à 08/03/2023 14:00 Europe/Paris en I, cela donne 3,5 heures (les dates peuvent être converties au besoin mais je dois obtenir le résultat en heures)
Pour la deuxième valeur unique 2, je soustrais 09/03/2023 12:30 Europe/Paris en J à 09/03/2023 09:00 Europe/Paris en I, cela donne 3,5 heures
Pour la dernière valeur unique 2851, je soustrais 09/03/2023 18:00 Europe/Paris en J à 09/03/2023 13:30 Europe/Paris en I, cela donne 4,5 heures
Comme il y a 3 valeurs différentes de segments, je fais la somme des trois, soit 11,5 heures et je reportes unique 11,5 dans la colonne L de ELT_SESSIONS pour le code session concerné.
Je vous joints un fichier modèle qui sera plus parlant.
Merci d'avance,
Kad
Je sollicite votre aide pour utiliser la fonction Dictionary dans une macro ou une autre méthode plus judicieuse mais toujours en macro car j'ai beaucoup de données à traiter qui évoluent sans cesse.
Je manipule très mal les imbrications de données qui dépendent de plusieurs critères dans des onglets différents mais je souhaite apprendre.
Voici ma problématique :
Dans l'onglet ELT_SESSIONS, en colonne B j'ai mes codes sessions.
Dans l'onglet liste_sessions, ceux-ci se trouvent en colonne A.
Pour chaque code session dans B, je recherche l'équivalence dans A.
Si elle est trouvée, je regarde dans la colonne G de liste_sessions.
Je prends chaque valeur unique de cette colonne pour le code session concerné et pour chaque valeur unique je soustrais les date/heure de J et I pour obtenir une durée en heures avec une décimale. Ensuite, je fais la somme des durées de chaque segment unique et je la reporte dans la colonne L de ELT_SESSIONS pour chaque session.
Pour exemple, je prends le code session 6086.
Il se trouve dans la colonne B de ELT_SESSIONS mais aussi dans la colonne A de liste_sessions.
Pour ce code session, je regarde dans G et je vois qu'il y a 15 valeurs mais seulement 3 segments uniques : le 1, 2 et 2851 (il peut en avoir 10 ou plus différents)
Pour la première valeur unique 1, je soustrais 08/03/2023 17:30 Europe/Paris en J à 08/03/2023 14:00 Europe/Paris en I, cela donne 3,5 heures (les dates peuvent être converties au besoin mais je dois obtenir le résultat en heures)
Pour la deuxième valeur unique 2, je soustrais 09/03/2023 12:30 Europe/Paris en J à 09/03/2023 09:00 Europe/Paris en I, cela donne 3,5 heures
Pour la dernière valeur unique 2851, je soustrais 09/03/2023 18:00 Europe/Paris en J à 09/03/2023 13:30 Europe/Paris en I, cela donne 4,5 heures
Comme il y a 3 valeurs différentes de segments, je fais la somme des trois, soit 11,5 heures et je reportes unique 11,5 dans la colonne L de ELT_SESSIONS pour le code session concerné.
Je vous joints un fichier modèle qui sera plus parlant.
Merci d'avance,
Kad