Volontiers. Pour extraire le nom de la feuille, j'utilise :
VB:
CELLULE("nomfichier";$A$1)
qui renvoiele chemin du fichier, le nom du fichier et celui de la feuille :
"d:\Users\dcola\Downloads\[suivi du prév.xlsx]Janvier""
Pour extraire "Janvier", je cherche la position de "]" :
Code:
CHERCHE("]";CELLULE("nomfichier";$A$1))
qui renvoie 45. J'ajoute 1 pour avoir la position de "J" et j'utilise STXT pour extraire le nom de la feuille ( le nom de l'onglet ne peut dépasser 31 caractères) :
Soit :
{"x";"x";"x";"x";0;0;0;0;0;0;0;0;0;0;0;0;0}
La fonction AGREGAT avec les paramètres 15 et 6 correspond à PETITE.VALEUR en ignorant les valeurs d'erreur.
renvoie le numéro des lignes contenant "x" et "#DIV/0!" pour les autres ( :
{1;2;3;4;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}
Les valeurs d'erreur étant ignorées, j'obtiens les numéros de ligne des cellules contenant "x". Ensuite avec INDEX, je récupère les valeurs de la colonne A correspondant à ces lignes.
Merci JHA pour ta réponse, je pense que je vais choisir ce modèle.
Merci Daniel pour ton explication claire et détaillée, je vais essayer de la reproduire afin de comprendre tout le mécanisme.