Bonjour,


Veuillez m'excuser dans un premier temps pour le titre, qui, je pense ne sera pas explicite du tout. Dans tous les cas, si vous venez ici, je vous en remercie (car le titre ne doit pas être accrocheur ).

Vous trouverez ci-joint un fichier Excel, qui vous permettra, je l'espère, de comprendre mes données :

testNext.xls

Dans le tableau de droite (ce sont des données issus d'une table Access, simplifiée), j'ai des données avec le nom des agents, une date, et une équipe d'appartenance. Le problème est que ces données ne sont pas exploitables directement, car je n'ai qu'une ligne par changement. Je voudrais donc "transformer" ces données, pour avoir le résultat illustré dans mon 2e tableau.

Pour ceux qui ne peuvent pas télécharger le fichier voici un imprime écran :

Nom : excel_next.png
Affichages : 80
Taille : 50,9 Ko

(désolé pour la taille..)

Pour obtenir le résultat de droite, j'ai créé une requête dans Access comme cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SELECT test.agent, test.equipe, Min(test.dateinactive) AS MinDedateinactive1, Min(test_1.dateinactive) AS MinDedateinactive
FROM test INNER JOIN test AS test_1 ON test.agent= test_1.agent
WHERE (((test_1.dateinactive)>=[test]![dateinactive] Or (test_1.dateinactive) Is Null) AND ((test_1.equipe)<>[test]![equipe]))
GROUP BY test.agent, test.equipe;
C'est une requête, où je fais en fait une jointure entre la même table, et où je regarde les différences.

Malheureusement, le résultat de cette requête ne me satisfait pas, et je n'obtiens pas le bon résultat, à savoir :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
AgentA   EquipeDefaut   21/08/2012 12:21   21/08/2012 12:22
AgentA   Equipe1          21/08/2012 12:22   24/05/2013 09:54
AgentA   Equipe2          24/05/2013 09:54
J'ai plusieurs problèmes par ce résultat :
- la date de début ne correspond pas à la réelle date de fin de l'ancienne équipe
- je n'ai pas le retour sur l'équipe1 à la fin. J'ai pas la dernière ligne de mes données en fait...


Quelqu'un aurait une idée pour me débloquer la situation ?
Si vous avez une solution en VBA, je suis aussi preneur. Pour vous avouer, j'ai essayer de passer par le VBA, en faisant des INSERT et des UPDATe, mais je me suis perdu dans mes boucles While

En vous remerciant par avance de vos réponses et de votre attention, et en espérant avoir posté cela dans le bon forum