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 :

Recherche cellules non-vides dans une plage [XL-2010]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 25
    Points : 17
    Points
    17
    Par défaut Recherche cellules non-vides dans une plage
    Bonjour à tous,

    J'espère que vous pourrez m'aider, voici mon problème : j'ai une colonne A d'énoncés et une colonne B de données, il n'y a pas forcément de données dans tous les énoncés, voir ci-dessous :

    colonne A colonne B

    poires 500
    pommes "cellule vide"
    carottes 350
    patates "cellule vide"
    navets "cellule vide"

    J'aimerai dans une autre colonne récupérer uniquement les énoncés contenant des valeurs, comme ceci :

    Colonne C
    poires
    carottes

    J'ai trouvé une formule pour récupérer la première valeur soit "poires" voilà la formule que j'ai mis dans la première cellule de la colonne C :
    =index(A1:A10;equiv(vrai;B1:B10<>"";0)) en formule matricielle

    mais je n'arrive pas à l'adapter pour que la ligne suivante récupère la seconde valeur non vide puis la suivante la troisième etc etc ....

    si quelqu'un connaît la solution ça m'aiderai bien

    Merci de m'aider
    Céline

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 667
    Points : 1 432
    Points
    1 432
    Par défaut
    Bonjour,

    A supposer que tu n'aies pas d'entête de colonne, copie en ligne 1 (ex: en D1):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX($A$1:$A$10; PETITE.VALEUR(SI(ESTVIDE($B$1:$B$10); 10000000;LIGNE($A$1:$A$10)); LIGNE())); "")
    A valider par Ctrl+Maj+Entrée (formule matricielle).

    A supposer que tu aies un entête de colonne en D1, copie en D2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX($A$1:$A$10; PETITE.VALEUR(SI(ESTVIDE($B$1:$B$10); 10000000;LIGNE($A$1:$A$10)); LIGNE()-LIGNE($D$1))); "")
    A valider aussi par Ctrl+Maj+Entrée.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Bonjour Promethée je te remercie beaucoup pour ta réponse mais ça ne fonctionne pas ça me donne la valeur vide partout (le retour de valeur si erreur) j'ai vérifié plusieurs fois et n'ai pas l'impression d'avoir mal recopié ta formule.....

    Celine

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 667
    Points : 1 432
    Points
    1 432
    Par défaut
    Bonjour,

    Cela fonctionne parfaitement chez moi; j'ai retesté dans un fichier tout neuf.

    - As-tu bien validé par Ctrl+Maj+Entrée?
    - Si formule copiée en dessous d'un entête, as-tu bien pris la 2ème formule proposée où l'on soustrait la ligne de l'entête?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Je ne comprends rien, j'ai créé un nouveau fichier et ai copié mon exemple la formule fonctionne très bien, mais sur mon fichier de travail ça ne fonctionne pas, j'ai pourtant copié la formule et juste modifié les plages, comprends rien ..... mystère

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    J'ai trouvé, je viens de déplacer mes colonnes sur mon fichier d'exemple et là ça ne fonctionne plus, la formule ne fonctionne que pour une plage au départ de A1, sur mon fichier de travail ce n'est pas le cas, as-tu une idée pour l'adaptation de la formule ?

  7. #7
    Membre expérimenté
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 667
    Points : 1 432
    Points
    1 432
    Par défaut
    Oui.
    A supposer que tu aies des entêtes de colonnes (ou en tout cas que tes données commencent en A2) et que tu copies la 1ère formule en D2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX($A$2:$A$11; PETITE.VALEUR(SI(ESTVIDE($B$2:$B$11); 10000000;LIGNE($A$2:$A$11)-LIGNE($A$1)); LIGNE()-LIGNE($D$1))); "")
    A adapter selon la position que tu souhaites tant que les données ne commencent pas en ligne 1.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Merci, merci beaucoup Promethee, j'ai fini par réussir, désolée j'ai été un peu longue !!! voici ce que ça donne sur mon fichier de travail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX($O$17:$O$29;PETITE.VALEUR(SI(($Q$17:$Q$29)="";10000000;LIGNE($O$17:$O$29)-LIGNES($O$1:$O$16));LIGNE()-LIGNES($Q$1:$Q$16)));"")
    Ma table commençant en "O17" il me fallait une plage de ligne à la place d'une ligne d'en-tête, aussi le "ESTVIDE" ne fonctionne pas s'il y a une formule dans la cellule j'ai donc remplacé par ="".

    Encore merci beaucoup c'est trop top

    Céline

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/06/2015, 19h50
  2. [XL-2007] recherche première cellule non vide dans une ligne
    Par tigrou530 dans le forum Excel
    Réponses: 3
    Dernier message: 23/02/2012, 13h21
  3. [XL-2003] recherche de la dernière cellule non vide d'une plage
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/11/2009, 12h14
  4. Recherche de cellules non vides dans une colonne
    Par John81 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 05/09/2008, 22h57
  5. Réponses: 5
    Dernier message: 22/02/2008, 19h34

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