Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
En plus, il est indispensable de n'avoir que des nombres dans la plage analysée (pas de texte mais il peut y avoir des cellules vides) et cette fonction est faite pour des cellules triées. Ce qui n'est le cas à priori !
9^9 veut dire 9 puissance 9, c'est à dire 387420489.
Il recherche ce nombre dans la plage B6:B15000. Encore faut-il être sûr qu'il n'existe pas ! Il part du principe qu'il y a peu de chance qu'il y figure.
Si la fonction RECHERCHE ne peut pas trouver ce nombre, elle utilise la plus grande valeur inférieure ou égale à celui-ci. Ce qui, entre parenthèse, correspond forcément à la dernière valeur recherchée dans le cas où l'on a un plage triée.
Il se trouve, qu'apparemment il ramène toujours la dernière valeur même lorsque la plage analysée n'est pas triée.
C'est une astuce non prévue par la fonction elle même et cela semble fonctionner sous toutes les réserves déjà formulées.
Ce code ne fonctionne pas avec le problème posé car à supposer que la plage B6:B15000 soit vide et qu'en B3 il y ait la valeur 1215, il va me ramener 1215. Ce qui n'est pas normal puisque cette valeur se trouve hors de la plage à analyser.
Dans ce cas, en rajoutant un petit test, ça doit aller :
Code:
Sub DernièreCellule()
Worksheets("Feuil1").Range("i9").Value = ""
With Worksheets("Feuil2")
If .Range("B6").End(xlDown).Row <= .Range("B15000").End(xlUp).Row Then Worksheets("Feuil1").Range("i9").Value = .Range("B15000").End(xlUp).Value
End With
End Sub
Vérifie s'il n'y a pas un autre cas particulier...
Fonctionne que les cellules contiennent des nombres ou du texte.
Petit détail : si on met 65536 (à la place de 65535), Excel reconnait qu'il s'agit d'une colonne complète et transforme le A1:A65536 en A:A
Or, les formules matricielles ne font pas bon ménage avec les références à des colonnes entières.
Petite remarque pour marmotte 18
La colonne ne doit pas être triée.
Si elle était triée, il suffirait d'employer la fonction MAX.
Il suffit qu'aucune valeur soit supérieure à 9^9 pour que la denière valeur numérique soit renvoyée.
9^9 peut être remplacé par une autre valeur plus grande si nécessaire, par exemple 99^9 ou 9^99
Pour du texte c'est la même formule en remplaçant 9^9 par "zz".
Il est très rare qu'un texte débute par zz.
Pourtant, à mon humble avis, la formule de Tibo reste la meilleure, bien que matricielle.
Merci pour les précisions apportées. Je constate effectivement que cela marche quand la colonne n'est pas triée. Bravo ! C'est pourquoi, j'ai qualifié cela d'astuce, on pourrait même dire d'expérience si tu préfères.
Mais il est vrai que dans l'aide de la fonction RECHERCHE, il est dit :
Important Les valeurs de l'argument vecteur_recherche (qui est le 2ème argument de la fonction) doivent être placées en ordre croissant : ...,-2, -1, 0, 1, 2, ..., A-Z, FAUX, VRAI. Sinon, la fonction RECHERCHE peut donner une valeur incorrecte. Les majuscules les et minuscules sont traitées indifféremment.
Si tu as des valeurs numériques et alphabétiques il te reste la formule de Tibo !
Pour le faire avec la fonction RECHERCHE j'ai vu que Monique a proposé une formule en son temps.
Si tu ne la trouves pas, je dois l'avoir dans mes archives, mais ce sera pour demain.
- 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