IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Fonction qui renvoie la dernière valeur d'une plage


Sujet :

Excel

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 53
    Points : 49
    Points
    49
    Par défaut Fonction qui renvoie la dernière valeur d'une plage
    Bonjour à tous,
    J'aurai aimé trouver dans Excel une fonction du type
    =DERNIER(A1:A20)
    qui donnerait la dernière valeur renseignée d'une plage de cellules.

    Je ne l'ai pas trouvée mais
    peut-être existe-t-elle sous une autre forme, directement ou par combinaison de plusieurs fonctions existantes.

    Merci

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 53
    Points : 49
    Points
    49
    Par défaut
    OUps
    Désolé la réponse est déjà dans la FAQ
    Et en plus la question vient juste d'ête posée par quelqu'un d'autre

    Honte à moi

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut brunoSCP et le forum
    Je sais pas sur le forum, j'ai pas cherché, mais une simple matricielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX((A1:A20<>"")*LIGNE(A1:A20))
    suffit pour avoir la ligne (validation par <Ctrl>+<Shift>+<Enter>)
    A+

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 53
    Points : 49
    Points
    49
    Par défaut
    Merci Gorfael,
    Ta réponse m'intéresse car elle ne fait pas appel à du code vba mais ça ne marche pas (même en remplaçant l' * par un
    De plus ce n'est pas le max que je cherche mais bien la dernière cellules renseignée de ma plage.


    En tout cas je ne m'en suis pas sorti avec le code vu dans la FAQ.
    J'ai fait ça, c'est peut-être pas optimisé mais ça répond à mon besoin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function Dernier(plage As Range) As String
        Dim c
        Dim old As String
        For Each c In plage
            If c <> "" Then
                old = c
            End If
        Next c
        Dernier = old
    End Function

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    il ne faut pas remplacer le * par un ;

    va donner 0 si la cellule est vide et 1 si la cellule contient quelque chose

    va donné le n° de ligne (de 1 a 20 ici, selon la ligne)

    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (A1:A20<>"")*LIGNE(A1:A20)
    va donner pour chaque ligne non vide le n° de la ligne et 0 pour chaque ligne vide

    Si tu fais le MAX() et que tu valides en matriciel (ctrl+maj+entrée), tu récupere donc le n° de ligne de la derniere cellule non vide de l'interval

    Mais toi, tu veux la valeur de la cellule, il reste donc a faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT("A"&MAX((A1:A20<>"")*LIGNE(A1:A20)))
    pour avoir le contenu de la cellule en question

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 53
    Points : 49
    Points
    49
    Par défaut
    Grand merci,
    J'ignorai tout des formules matricielles.
    Tout c'est éclairé, ce soir je dormirai bien, satisfait de ne pas trainer le boulet d'un code vba lourdingue dans mon document et l'esprit repu de mes nouvelles connaissances.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 05/02/2015, 14h47
  2. Une fonction qui renvoie plusieurs valeurs ?
    Par chuckichucki dans le forum Langage
    Réponses: 9
    Dernier message: 14/01/2011, 13h49
  3. Fonction qui renvoie les premières lettres d'une suite de mots
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 16
    Dernier message: 30/06/2010, 13h58
  4. fonction qui renvoie un un objet d'une autre classe
    Par miloon dans le forum Débuter
    Réponses: 3
    Dernier message: 16/02/2009, 20h45
  5. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo