Microsoft 365 Extraire dans plusieurs colonnes les données d'une autre feuille en sautant des lignes et sans macro

Caillou_

XLDnaute Nouveau
Bonjour,

Je prépare un fichier dont je ne serais pas l'utilisateur une fois terminé et qui sera rempli sur une version en ligne avec plusieurs accès. Il doit donc être le plus simple possible et pour des problèmes de compatibilités, ne pas inclure de macros.

Je dois extraire dans un tableau certaines données brutes issues d'une autre feuille. L'import des milliers de données brutes impose qu'elles soient en lignes dans une seule colonne (A).
Il y a 7 données différentes par référence, je les ai donc nommé comme suit pour l'exemple :
1613662046023.png


Je ne pouvais pas tirer la formule simple d'appel à une cellule dans une autre feuille (exemple : " ='Données brutes'!A6 ") en prenant en compte l'incrémentation de 7. Même en faisant plusieurs lignes manuellement, on ne peut tirer la formule sans qu'elle reprenne une incrémentation de 1 (A6, A7, A8, ...)

Après plusieurs essais pour faire une incrémentation dans les cellules du tableau et pouvoir tirer la formule, je n'ai rien trouvé de concluant.

J'ai, pour le moment, réussi à obtenir les premières données qui m'intéressent (données 2.x) en utilisant deux colonnes que je masquerais. L'une avec une liste simple 0, 1, 2, .. et l'autre avec l'adresse de la cellule dont je rechercherai la donnée (pour la première ligne : " ="'Données brutes'!A"&(6+(7*A5)) ").
Avec l'aide de ces colonnes, j'utilise la fonction INDIRECT avec une fonction SI pour éviter d'afficher un 0 lorsqu'il n'y a pas de données :
" =SI(INDIRECT(B5;VRAI)=0;"";INDIRECT(B5;VRAI)) "
1613665410609.png


Je suis toutefois assez peu satisfait de cette méthode car j'imagine qu'il doit être possible d'avoir le même résultat sans avoir à refaire des colonnes masqués pour chacune des différentes données que je veux exploiter.

Je cherche donc à extraire les données dans mon tableau avec une formule que je pourrai tirer jusqu'au bout de mon tableau, qui serait le plus optimisée et qui nécessiterait le moins de colonnes masquées possibles.

Merci d'avance pour vos réponses,
Pierre
 

Pièces jointes

  • Exemple - Copie.xlsx
    20.9 KB · Affichages: 9
Solution
Bonjour Caillou,
L'instruction Ligne() donne le numéro de ligne où se trouve la formule, donc si en M5, par ex, on met =LIGNE()-5 on obtient 0, soit la valeur de la colonne A.
Si on concatène les formules, en D5 on peut mettre :
VB:
=SI(INDIRECT(("'Données brutes'!A"&(6+(7*(LIGNE()-5))));VRAI)=0;"";INDIRECT(("'Données brutes'!A"&(6+(7*(LIGNE()-5))));VRAI))

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Caillou,
L'instruction Ligne() donne le numéro de ligne où se trouve la formule, donc si en M5, par ex, on met =LIGNE()-5 on obtient 0, soit la valeur de la colonne A.
Si on concatène les formules, en D5 on peut mettre :
VB:
=SI(INDIRECT(("'Données brutes'!A"&(6+(7*(LIGNE()-5))));VRAI)=0;"";INDIRECT(("'Données brutes'!A"&(6+(7*(LIGNE()-5))));VRAI))
 

Pièces jointes

  • Exemple - Copie.xlsx
    16.3 KB · Affichages: 10

Caillou_

XLDnaute Nouveau
Re-Bonjour,

Un grand merci à vous deux !
Je garde la solution de Sylvanu qui répond bien à ce que je recherchais.
La solution de JHA s'adaptait à mon exemple, mais dans mon cas réel les entêtes de mes colonnes n'auront pas le numéro des informations à rechercher.

Bonne journée !
 

Discussions similaires