Bonjour,
En attendant l'expertise de Gilbert ... voici ma réflexion et mes investigations !
- pas besoin de macro
- on pourrait tenter une méga-formule QUERY & ARRAYFORMULA (*)
- faut-il encore la mettre au point
- mais qui serait sensible à la moindre variation des feuilles sources (exemple : changement d'un ID) ... si la formule ne donne plus rien, le troubleshooting s'annonce rude
(*) formule de base : avec IDx les ID des fichiers, et Jacques/Jean/Jules le noms des onglets dans les fichiers (mais cela peut être le même, par exemple 'note de frais')
={
IMPORTRANGE("ID1"; "Jacques!A2:Z");
IMPORTRANGE("ID2"; "Jean!A2:Z");
IMPORTRANGE("ID3"; "Jules!A2:Z")
}
l'inconvénient de cette formule est qu'elle n'indique pas le fichier source, et qu'elle amène aussi les lignes vides
donc je propose en 2 temps :
- rapatrier les données de chaque feuille source dans un onglet par source, et mettre en A2 : (le
Z
est à ajuster bien sûr !)
=IMPORTRANGE("ID_de_la_feuille_de_Jacques"; "Jacques!A2:Z")
- puis consolider toutes les feuilles dans une seule feuille
- en éliminant les lignes vierges
- en ajoutant la personne (ou fichier source)
- en triant (optionnel) par n° de NdF
comme ceci, exemple de 3 feuilles, en A2 d'une nouvelle feuille
=QUERY({
ARRAYFORMULA({IF(ISBLANK('Jacques A'!A3:A);;"Jack") \'Jacques A'!A3:Z});
ARRAYFORMULA({IF(ISBLANK('Jean E'!A3:A);;"Jean") \'Jean E'!A3:Z});
ARRAYFORMULA({IF(ISBLANK('Jules U'!A3:A);;"Jul") \'Jules U'!A3:Z})
};"select * where Col1 <> '' order by Col2")
où
Jacques A
, Jean E
, Jules U
sont les noms des feuilles qui ont reçues le IMPORTRANGE ... cela pourrait être le même, exemple 'Note de Frais'Jack
, Jean
, Jul
des diminutifs quelconquesZ
à ajustercol2
(éventuel et à ajuster) le tri souhaité