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

Fonction qui vérifie si un item d'une liste est le dernier élément ou pas de la liste

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 !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonsoir,

Tout est dans le titre.
Je suis à la recherche d'une fonction qui vérifierait si tel élément d'une plage est le dernier ou pas de cette plage.

Merci d'avance pour m'aiguiller.
 
Re : Fonction qui vérifie si un item d'une liste est le dernier élément ou pas de la

Salut Magic_Doctor,

Tout est dans le titre, tout est dans le titre ... comme tu y vas 😉
Ta question doit trouver une solution par macro ou formule? "tel élément d'une plage", tu le sélectionnes dans la plage, tu le renseignes dans une autre cellule, voire une autre feuille?
Un petit bout de fichier illustrant le propos serait le bienvenu!
 
Re : Fonction qui vérifie si un item d'une liste est le dernier élément ou pas de la

Bonsoir Magic_Doctor,

Un exemple dans le fichier joint avec la formule:
Code:
=SI(K3=INDEX(B2:G12; LIGNES(B2:G12);COLONNES(B2:G12));"Dernière"; "pas la dernière")

nb: mon interprétation est forcément la bonne puisque 'tout est dans le titre' 🙂
 

Pièces jointes

Dernière édition:
Re : Fonction qui vérifie si un item d'une liste est le dernier élément ou pas de la

Grondé, toujours grondé sur ce forum !

Bon, je reconnais que je ne fus pas assez explicite dans ma requête.
D'abord, j'aurais dû spécifier que par plage j'entendais une suite verticale de cellules, autrement dit une colonne. Donc Modeste avait raison de me gronder, même si j'en ai marre d'être grondé (Modeste, job, ma femme, le flic du coin, la connasse hystérico-hyper-responsable-salvatrice-du-monde à l'aéroport qui voit des armes de destruction massive partout (briquet, cure-dent...)...).
Blague à part, mapomme, j'ai vu vos solutions qui s'appuient sur des formules. Le problème est que bien souvent certaines formules plantent quand on passe du français à l'espagnol (allez savoir pourquoi...), ce qui est le cas dans votre post#4 où en K4 s'affiche #¡VALOR!. C'est une des raisons pour laquelle je les ai pratiquement abandonnées pour ne me consacrer plus qu'à VBA.
Mais merci pour vos interventions.
J'ai fini par bidouiller, avec mes armes du bord, une fonction qui permet de vérifier si tel item d'une plage (en colonne) est le dernier ou pas de cette plage. Voir PJ.

Bonne nuit à tous.
 

Pièces jointes

Re : Fonction qui vérifie si un item d'une liste est le dernier élément ou pas de la

Bonsoir Magic_Doctor,

Si la formule ne marche, en espagnol, c'est peut-être que j'ai utilisé la paramètre "adresse" au lieu du paramètre américain "address".

Suite à la lecture de vos fonctions, j'ai reconstruit deux formules qui devraient se comporter comme les votres (à condition que "address" fonctionne)

Voir fichier.
 

Pièces jointes

Re : Fonction qui vérifie si un item d'une liste est le dernier élément ou pas de la

Bonsoir mapomme,

Je réponds un peu tard (5 heures de décalage, je dînais...).
Maintenant ça marche !
J'en profite pour faire un aparté. Je pense que dans le monde d'Excel, au-delà du vulgum pecus (95 % de ceux qui ont Excel...), il y a les "formuleurs" et les "VBAiseurs". Le problème des formules est que l'on est assujettis à des formules toutes faites concoctées par Microsoft. Ces formules sont souvent pratiques, mais pour parvenir à certains résultats il faut les combiner entre elles de telle manière que seul celui qui les a conçues peut vraiment les comprendre, à condition toutefois que ne s'écoulent pas plusieurs mois...
En d'autres termes, elles deviennent rapidement incompréhensibles pour les autres. Et si l'on désire les utiliser dans une autre feuille, ça peut finir en une véritable fonte cérébrale.
En revanche, une fonction (UDF) bien concoctée est d'une versatilité qui défit toute formule complexe. Voilà pourquoi j'ai définitivement abandonné (sauf exception) le monde "exigu" des formules et de leurs combinaisons "rocambolesques" qui finissent trop souvent en une véritable prise de tête.
Maintenant comparons vos formules et ma fonction, très perfectible au demeurant :
J'ai une copine, Pamela Anderson, fana d'Excel. Elle voudrait, dans une feuille surchargée, savoir si tel item d'une liste interminable de Top Models est le dernier ou pas de ladite liste. Avec la formule c'est la fin neuronale de cette chère Pamela, alors qu'avec la fonction Pamela est repartie pour de nouvelles aventures.
Bon, j'aime bien plaisanter sur ce forum souvent un peu coincé (presque 10 ans que j'y suis...), mais surtout je tiens à vous remercier pour être intervenu sur ce fil.
 
Dernière édition:
Re : Fonction qui vérifie si un item d'une liste est le dernier élément ou pas de la

Bonjour Magic_Doctor, mapomme,

@Magic_Doctor: "Grondé, toujours grondé sur ce forum !" ... Tout cela n'est jamais qu'affaire de perception: l'utilisation d'un smiley en forme de clin d'oeil aurait pu être pris comme une indication, autant que le texte qui le précédait.

Ceci dit, sur une colonne unique, on aurait aussi pu utiliser une formule comme:
Code:
=B37=RECHERCHE("zz";B3:B100)
Ce type de fonction devrait être traduite automatiquement, en fonction de la langue d'Office?
... A voir!?
 
Re : Fonction qui vérifie si un item d'une liste est le dernier élément ou pas de la

Bonjour Magic_Doctor, salut Modeste, mapomme,

Te gronder ? Je ne me permettrais pas cher Doctor 🙂

Mais voici encore une macro a minima :

Code:
Function LastItem2(plage As Range, cel As Range) As Boolean
With plage(plage.Count)
LastItem2 = cel.Address = IIf(.Value = "", .End(xlUp), .Cells).Address
End With
End Function
A+
 
Re : Fonction qui vérifie si un item d'une liste est le dernier élément ou pas de la

Re,

Une autre solution si la plage ne contient comme ici que des textes :

Code:
Function LastItem2(plage As Range, cel As Range) As Boolean
LastItem2 = cel.Row = Application.Match("zzz", plage) + plage.Row - 1
End Function
Alors on peut aussi utiliser cette formule similaire en D4 :

Code:
=LIGNE(B37)=EQUIV("zzz";MaMerveilleusePlageDeCellules)+LIGNE(MaMerveilleusePlageDeCellules)-1
qui s'écrit en espagnol :

Code:
=FILA(B37)=COINCIDIR("zzz";MaMerveilleusePlageDeCellules)+FILA(MaMerveilleusePlageDeCellules)-1
Fichier joint.

A+
 

Pièces jointes

Re : Fonction qui vérifie si un item d'une liste est le dernier élément ou pas de la

Bonjour Modeste, job,

Modeste, vous avez raison quant aux smiley, mais la dernière fois que j'ai voulu en utiliser, j'sais pas comment je me suis débrouillé, mais ce fut la cagade complète, ou si vous préférez du brin. Alors... je ne les utilise pas. Pas de patience pour le fun...
job, voir tes résultats est toujours une leçon d'humilité. ¡No lo puedo creer, en sólo una frase!
Mais je reconnais que 2 "=" qui se succèdent sur une même ligne, ça c'est nouveau pour moi !
Évidemment, je conserve ta fonction et répudie la mienne (pourtant j'étais content de ma fonction...).
Si j'ai opté pour une fonction ce n'est pas par "discrimination formulaire" mais c'est qu'ultérieurement je voudrais, au sein d'une procédure, réaliser ou pas telle opération en fonction de la position de l'item dans la liste (dont le résultat n'a aucune raison d'apparaître sur la feuille).

Merci à tous pour votre participation.
 
- 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

Réponses
40
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…