Recherche V avec toutes les valeurs correspondantes

Fermé
Carole- Messages postés 14 Date d'inscription jeudi 2 mars 2017 Statut Membre Dernière intervention 29 août 2017 - 22 mars 2017 à 09:52
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 29 mars 2017 à 21:26
Bonjour,

Je souhaiterai effectuer une recherche V avec toutes les valeurs correspondantes à un seul critère.
Quelqu'un peut-il m'aiguiller ?

Ci joint le lien pour accéder à mon exemple, ce sera plus lisible :
http://www.cjoint.com/c/GCwiXOxLY7m

En espérant que quelqu'un pourra m'aider :)

Merci
A voir également:

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 712
22 mars 2017 à 10:01
Bonjour,

La fonction RECHERCHEV ne délivre que la première valeur trouvée et il n'y a pas de fonctions qui peuvent satisfaire ton désir sauf si tu le codes en macro VBA
0
Carole- Messages postés 14 Date d'inscription jeudi 2 mars 2017 Statut Membre Dernière intervention 29 août 2017
22 mars 2017 à 11:52
Bonjour,

Merci pour votre réponse
Est ce que vous pourriez me donner le code de la macro pour mon exemple ci dessus pour que je puisse avoir au moins un début (je ne suis pas hyper calée en vba ..) ?
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 712
22 mars 2017 à 14:49
Bonjour,

Voici le code de la macro pour ta fonction personnalisée que je t'ai mise à droite dans ton classeur : https://www.cjoint.com/c/GCwnV2XbEyl

Public Function rech_tous(ref As String, plg As Range)
Dim lgn As Range
Dim idr As Long
    rech_tous = ""
    Application.Volatile
    For Each lgn In plg.Rows
        If Cells(lgn.Row, plg.Column) = ref Then
            rech_tous = rech_tous & IIf(rech_tous = "", "", " / ") & _
                Cells(lgn.Row, plg.Column + 1)
            For idr = 2 To plg.Columns.Count - 1
                rech_tous = rech_tous & ":" & Cells(lgn.Row, plg.Column + idr)
            Next idr
        End If
    Next lgn
End Function

0
Carole- Messages postés 14 Date d'inscription jeudi 2 mars 2017 Statut Membre Dernière intervention 29 août 2017
22 mars 2017 à 16:28
Merci pour votre rapidité.

J'essaie de la coller sur mon fichier de travail mais la formule rech_tous ne va pas me chercher les données.
Je dois peut être changer un "code" en la copiant sur mon fichier ?
Pouvez vous m'expliquer en gros que signifient les différentes lignes de cette macro ?

Ci joint également un autre fichier (je n'ai pas précisé que je souhaitais avoir le total différencié sur plusieurs lignes => cela changera peut être le code de la macro .. ?)
http://www.cjoint.com/c/GCwpy2Y4sCm

Merci encore pour votre aide !
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 712
22 mars 2017 à 18:46
Bonsoir,

J'essaie de la coller sur mon fichier de travail
Ton classeur doit prendre le suffixe '.xlsm' car sinon les macros ne sont pas sauvegardées et la fonction doit être copiée dans un module standard.

Je dois peut être changer un "code" en la copiant sur mon fichier ?
Non

sur plusieurs lignes => cela changera peut être le code de la macro .. ?
Bien évidemment; cela n'a strictement rien à voir : ce serait bien que tu définisse clairement ce que tu souhaites
1) tu souhaites regrouper tous les résultats dans la même cellule
2) tu veux tous les résultats mais sur plusieurs lignes
Une formule ne met le résultat que dans la cellule où elle est appelée.
Si tu veux des résultats sur plusieurs lignes, il faudra mettre la formule sur autant de lignes que de résultats, ce qui conduit pratiquement à connaitre d'avance le résultat.
Tu peux par contre avoir plusieurs lignes dans la même cellule, ce qui est plus normal comme fonctionnement.
Lorsque tu auras les idées claires nous pourrons avancer.
0
Carole- Messages postés 14 Date d'inscription jeudi 2 mars 2017 Statut Membre Dernière intervention 29 août 2017
24 mars 2017 à 15:38
Bonjour gbinforme,

- Mon classeur prend en charge les macro pas de soucis à ce niveau là

- Je souhaitais effectivement avoir tous les résultat mais sur plusieurs lignes (c'était une question de praticité pour l'opérateur qui liera son tableau)
Or, je ne savais pas que ce n'était pas faisable.

- Donc effectivement,suite à tes recommandations, j'opte pour la dernière solution qui est d'avoir plusieurs lignes dans la même cellule.

En espérant que c'est assez clair
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 712
24 mars 2017 à 22:10
Bonsoir Carole,

Voilà, je t'ai fait un mixe de tes exemples, dis-moi si c'est ce que tu attendais

https://www.cjoint.com/c/GCyvjfYpMVl
0
shadows31 Messages postés 2 Date d'inscription vendredi 24 mars 2017 Statut Membre Dernière intervention 25 mars 2017
25 mars 2017 à 00:05
bonjour on peut en incrémentant plusieurs recherchev obtenir dans la même cellule le résultat de deux cellules différente dans des colonnes différente, en revanche excell cherche la valeur recherche dans la liste de haut en bas et s’arrête a a première réponse
jais un peu contourné le problème comme dans l'exemple ci joint , j'espère que le résultat sera utile
bonne soirée mais je n'ai pas reussi a envoyer l exemple
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
29 mars 2017 à 17:33
Bonjour
et salut GB
un petit exercice de style sans macro
c'est nettement plus simple avec macro, alors juste pour le fun, un petit exercice de style sans macro
https://mon-partage.fr/f/7bMFIgTn/

crdlmnt
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 712
29 mars 2017 à 21:26
Salut Vaucluse,

Je vois que tu t'es bien amusé même si tu es parti du résultat souhaité et pas de la base. C'est vrai que l'on peut faire plein de belles choses avec formules et même la recherchev récursive mais souvent il faut des colonnes intermédiaires et presque connaitre le résultat pour savoir le nombre de lignes à tirer, alors qu'une variable VBA est tellement plus simple.

Merci de ton exemple et à bientôt.
0