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 :

Rechercher dernière occurrence d'une valeur textuelle


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Rechercher dernière occurrence d'une valeur textuelle
    Bonjour,
    Mon problème est le suivant, comment obtenir la référence de la dernière occurence d'une valeur textuelle. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    A
    A
    B
    B
    A
    A
    B
    Si je recherche la dernière occurence de la valeur "A" je souhaite obtenir 6.
    Si je recherche la dernière occurence de la valeur "B" je souhaite obtenir 7.

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    à tester avec cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Function RetourneLigne(s As String)
     Selection.SpecialCells(xlCellTypeLastCell).Select
     Cells.Find(What:=s, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _
            , SearchFormat:=False).Activate
     RetourneLigne = Selection.Row
    End Function
    l'utilisation se faisant ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ligne = RetourneLigne("A")

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 267
    Points : 306
    Points
    306
    Par défaut
    Bonjour

    Par formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX(($A$1:$A$1000="A")*LIGNE($A$1:$A$1000))
    MATRICIELLE : à valider avec Ctrl+Maj+Entrée

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    Par formule matricielle, à valider par Ctrl+Maj+Entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX(SI(A1:A7="A";LIGNE(A1:A7)))

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par ullan Voir le message
    Bonjour,

    Par formule matricielle, à valider par Ctrl+Maj+Entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX(SI(A1:A7="A";LIGNE(A1:A7)))
    J'ai appliqué la formule comme décrit mais je n'obtiens pas le bon résultat (j'obtiens la valeur 0).
    J'ai attaché un fichier d'exemple. Pourriez-vous m'indiquer où j'ai faux ?
    Fichiers attachés Fichiers attachés

  6. #6
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Points : 323
    Points
    323
    Par défaut
    Bonsoir,

    as tu bien validé ta formule par ctrl+Maj+enter ???
    (google => formule matricielle)

    @+

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par oOVaveOo Voir le message
    Bonsoir,

    as tu bien validé ta formule par ctrl+Maj+enter ???
    (google => formule matricielle)

    @+
    En effet, je faisais mal mon ctrl+Maj+enter.

    Par contre dans mon exemple j'avais fixé la liste à 7 éléments. Comment faire pour que la formule recalcule automatiquement si je rajoute un huitième élement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    A
    A
    B
    B
    A
    A
    B
    A
    Avant de rajouter le huitième élément la formule ci-dessous renvoie 6.
    =MAX(SI(A1:A7="A";LIGNE(A1:A7)))

    Si je rajoute un huitième élément la formule retourne toujours 6 car elle est fixée à 7 éléments. En essayant de rendre générique la formule comme suit j'obtiens l'erreur #Nombre! :
    =MAX(SI(A:A="A";LIGNE(A:A)))

    Vous auriez une astuce pour répondre à ma nouvelle problématique ?

  8. #8
    Membre averti
    Inscrit en
    Février 2008
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 267
    Points : 306
    Points
    306
    Par défaut
    Re

    Tu peux écrire la formule avec un nombre de lignes suffisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =MAX(($A$1:$A$1000="A")*LIGNE($A$1:$A$1000))
    ou alors nommer la plage de façon dynamique (voir fichier)

    Amicalement
    Nad
    Fichiers attachés Fichiers attachés

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Nad-Dan Voir le message
    Re

    Tu peux écrire la formule avec un nombre de lignes suffisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =MAX(($A$1:$A$1000="A")*LIGNE($A$1:$A$1000))
    ou alors nommer la plage de façon dynamique (voir fichier)

    Amicalement
    Nad
    Merci pour ta solution ça marche nickel !

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    bonjour
    je vois bien que la formule fonctionne, mais je n'arrive pas a saisir le cheminement. pouvez vous m'éclairer ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =MAX((A:A=A1)*LIGNE(A:A))

  11. #11
    Membre averti
    Inscrit en
    Février 2008
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 267
    Points : 306
    Points
    306
    Par défaut
    Bonjour

    Explications dans le fichier.

    Amicalement
    Nad
    Fichiers attachés Fichiers attachés

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    merci

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

Discussions similaires

  1. [Toutes versions] Confusion de résultats dans recherche des occurrences d'une valeur avec Find sur des dates
    Par iperkut dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/11/2011, 19h07
  2. Réponses: 8
    Dernier message: 15/12/2008, 13h22
  3. Comment rechercher dans les tables une valeur puis la modifier ?
    Par arnaudperfect dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/07/2008, 10h28
  4. Réponses: 32
    Dernier message: 08/03/2008, 03h07
  5. recherche quel champ contient une valeur
    Par Pitou5464 dans le forum Access
    Réponses: 6
    Dernier message: 29/08/2006, 17h02

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