Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Récupérer l'adresse de la dernière colonne non vide pour l'insérer dans une formule (sans VBA)

  • Initiateur de la discussion Initiateur de la discussion grosgui
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

grosgui

XLDnaute Nouveau
Bonjour à tous.

J'essaie (je débute alors c'est certainement pas très propre comme contenu !) de faire un fichier (en pj) à destination de mes collègues enseignants et je coince sur une fonctionnalité.

L'idée est d'afficher, dans la feuille "Détails classe selon groupe" les prénoms/noms d'élèves qui vérifient une condition donnée.
Pour cela, j'ai récupéré dans la feuille "Calculs" le numéro de colonne des élèves qui répondent à cette condition, avec la formule =SI(INDIRECT(ADRESSE('Détail classe selon groupes'!$J$27;COLONNE());1)<='Synthèse élève'!$G$6;COLONNE();"") et, avec =SI(ESTERREUR(PETITE.VALEUR(Calculs!$D108:$CU108;COLONNE()-11));"";INDIRECT("Calculs!"&ADRESSE(2;PETITE.VALEUR(Calculs!$D108:$CU108;COLONNE()-11));1)), j'ai ce que je souhaite.
Calculs!$D108:$CU108 est la page dans laquelle figurent tous les numéros de colonne ; mais CU108 n'est pas nécessairement la limite de cette plage car le fichier est fait pour traiter les résultats de 400 élèves (donc potentiellement jusqu'à OM108) et cette limite varie en fonction du nombre d'élèves dont les résultats sont entrés dans la feuille "A remplir" (je ne sais pas si je suis très clair )

Dans la formule =SI(ESTERREUR(PETITE.VALEUR(Calculs!$D108:$CU108;COLONNE()-11));"";INDIRECT("Calculs!"&ADRESSE(2;PETITE.VALEUR(Calculs!$D108:$CU108;COLONNE()-11));1)), il faudrait donc que le CU108 s'adapte automatiquement en fonction de la dernière colonne non vide de la feuille "A remplir". Je pensais naïvement (lol) mettre OM108 à la place mais cela a pour conséquence de ne plus faire apparaitre un seul prénom/nom...

Merci d'avance pour les pistes et l'aide apportée.

Guillaume
 

Pièces jointes

Bonjour le Forum,
Bonjour grosgui,

sans passer par VBA je ne vois qu'une solution, par formule matricielle. Ce qui donnerait en L2 de la feuille "Détail classe selon groupes" cette formule

Code:
=SI(ESTERREUR(PETITE.VALEUR(INDIRECT("Calculs!$D108:"&ADRESSE(108;MAX(SI(Calculs!A106:OM106>0;COLONNE($A1:$OM1)));3));COLONNE()-11));"";INDIRECT("Calculs!"&ADRESSE(2;PETITE.VALEUR(INDIRECT("Calculs!$D108:"&ADRESSE(108;MAX(SI(Calculs!A106:OM106>0;COLONNE($A1:$OM1)));3));COLONNE()-11));1))

Pour valider une formule matricielle il faut appuyé simultanément sur les touche CTRL, Maj (au dessus de CTRL) et entrée si la formule est bien validée excel va mettre { devant le signe égal et } à la fin de la formule ces signes ne doivent pas être tapés.

quelques exemple dans le fichier

mais attention vu le nombre de colonnes et de ligne sur lesquelles on travaille le temps de calcul va etre très long après la seule autre solution serait du VBA et la je passe la main car je suis une bille à ce jeu la

Cordialement
 

Pièces jointes


Bonjour Jocelyn et merci pour la réponse rapide.
Je vais regarder ça de plus près et, surtout, essayer de comprendre le pourquoi du comment !
Merci en tous cas pour l'aide !

Cordialement,

Guillaume
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…