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 :

Chercher numéro dans une plage de cellules non contiguës [XL-MAC 2016]


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut Chercher numéro dans une plage de cellules non contiguës
    Bonjour,
    je bute sur ce problème que je pensait simple à résoudre.

    Je cherche un numero (1à10) unique dans une plage de cellules non contigues:

    (X5;X9;X15;X19;X26;X30;X36;X40;AA7;AA17;AA28;AA38;P7;P17;P28;P38;L9;L19;L30;L40;AD12;AD33;H14;H35;D18;D39

    Si ce numero existe je souhaite afficher la valeur de la colonne adjacente (pour être plus précis, si je cherche 7, et que 7 se trouve en D4, je veux afficher la valeur (texte/nom) de C3)

    Je ne souhaite pas utiliser de Macro si cela est possible.

    J'ai nommé ces cellules : celtab1 celtab2, celtab3, est-ce qu'on peut faire une recherche dans celtab* quelque chose comme ça?

    Merci de votre aide.

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    EQUIV ou RECHERCHEV ne savent pas chercher dans une zone non linéaire (plus d'une colonne ET plus d'une ligne).

    Il y a peut-être une possibilité en formules matricielles.

    Cela dit, je ne comprends pas trop ton explication sur la position de la valeur à renvoyer par rapport à la valeur trouvée : colonne de gauche et ligne du dessus ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ginofalaci Voir le message
    Bonjour,

    Désolé pour le VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    Function TrouverValeur(ByVal ValeurATrouver As Integer) As Variant
     
    Dim Cellule As Range, AireDeRecherche As Range
     
        Application.Volatile
     
        Set AireDeRecherche = Sheets("Feuil2").Range("X5,X9,X15,X19,X26,X30,X36,X40,AA7,AA17,AA28,AA38,P7,P17,P28,P38,L9,L19,L30,L40,AD12,AD33,H14,H35,D18,D39")
     
        TrouverValeur = ""
        For Each Cellule In AireDeRecherche
            If Cellule = ValeurATrouver Then TrouverValeur = Cellule.Offset(-1, -1)
        Next Cellule
     
        Set AireDeRecherche = Nothing
     
    End Function

  4. #4
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Oui c'est ça: colonne de gauche et ligne du dessus.
    Pourrait-on imbriquer des INDEX EQUIV avec des OU pour chaque colonne concernée?
    mes cellules en question sont dans des colonnes qui ne contiennent pas d'autres valeurs ou formules.
    Donc est ce possible/raisonnable de faire un genre de =OU(INDEX EQUIV X5:X40)OU(INDEX EQUIV AA7:AA38) OU(INDEX EQUIV P738) etc.. ?

    Je vais regarder la macro, merci.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ginofalaci Voir le message
    Je n'avais pas fait attention que c'était sur Mac. Sans garantie.

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    En supposant
    - que tu ais créé une zone nommée "Test" contenant toutes les cellules de la zone de recherche.
    - que la valeur cherchée est en A1
    - que cette valeur n'est présente QU'UNE SEULE FOIS dans la zone de recherche.

    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT(ADRESSE(SOMME(SI(Test=A1;LIGNE(Test);0))-1;SOMME(SI(Test=A1;COLONNE(Test);0))-1))
    A valider comme formule matricielle avec Ctrl+Shift+Entrée

    Je n'ai pas testé dans tous les cas. Donc à vérifier.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Merci je vais tester.

    La macro ne fonctionne pas, sur votre fichier et intégrée dans un autre fichier elle donne une erreur #VALEUR!

    Ce genre de 'function' fonctionne sur Mac, j'en utilise d'autres. Je ne vois pas trop pourquoi celle ci ne fonctionnerais pas.
    Sauf erreur Mac et Win partagent le même code pour Office, mais certaines fonctions ne sont pas implantées.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Musicien
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Désolé pour le VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    Function TrouverValeur(ByVal ValeurATrouver As Integer) As Variant
     
    Dim Cellule As Range, AireDeRecherche As Range
     
        Application.Volatile
     
        Set AireDeRecherche = Sheets("Feuil2").Range("X5,X9,X15,X19,X26,X30,X36,X40,AA7,AA17,AA28,AA38,P7,P17,P28,P38,L9,L19,L30,L40,AD12,AD33,H14,H35,D18,D39")
     
        TrouverValeur = ""
        For Each Cellule In AireDeRecherche
            If Cellule = ValeurATrouver Then TrouverValeur = Cellule.Offset(-1, -1)
        Next Cellule
     
        Set AireDeRecherche = Nothing
     
    End Function
    Bonjour, je refais appel, pour une fonction tellement simple que je n'arrive pas à la trouver, mais je me plonge dans le VBA dès que j'ai du temps!
    Je cherche à retourner la valeur cherchée, comme dans ce premier exemple que vous m'avez proposé, mais sans offset.
    Simplement savoir si la valeur "*" se trouve dans la 'Range' de cellules non contigues. la valeur cherchée est unique, et un nombre entier.
    Je cherche savoir si il y a "1" dans la 'Range', ensuite dans une autre case pour la même 'Range'
    s'il y a "2", ensuite
    s'il y a "3", jusqu'à 10.
    Merci.

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

Discussions similaires

  1. Récupérer un numéro de ligne dans une plage de cellules
    Par clem256 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/03/2017, 15h02
  2. [OpenOffice][Tableur] Ecrire dans une plage de cellule
    Par jmjmjm dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 08/05/2007, 14h20
  3. Comment sélectionner une plage de cellules non consécutives?
    Par jokair dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/08/2006, 15h36
  4. Pb de lecture données dans une plage de cellule avec itération
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/07/2006, 13h33
  5. Remplacer "#N/A" dans une plage de cellule.
    Par Yogi_01 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 12/04/2006, 14h59

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