Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 recherche valeur tableau 2 en fonction d'une valeur dans tableau 1

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M Fabrice

XLDnaute Nouveau
Bonjour,

Est-ce que quelqu'un connaît dans excel la formule pour aller chercher la correspondance dans le tableau 2 d’une valeur du tableau 1 ?

Par exemple : si je souhaite avoir la correspondance dans le tableau 2 de la valeur 7 du tableau 1, que excel me donne « D ».

Cela fait plusieurs fois que je me cogne à cette problématique. Je n’ai jamais trouvé la solution…et pourtant j’en aurais vraiment besoin.

Tableau 1 :

1​
2​
3​
4​
5​
6​
7​



Tableau 2 :

Z​
E​
F​
T​
H​
I​
J​
L​
P​
Y​
R​
D​
 
Solution
Bonjour Fabrice,
Correspondance n'est pas une fonction, c'est une fonction personnelle. En d'autres termes une fonction qui est écrite en VBA.
1- Dans votre fichier faites ALT + F11, vous arrivez dans l'éditeur VBA
2- A gauche sur Modules faites Clic droit Insertion puis Modules. Une fenêtre blanche s'ouvre à droite.
3- Dans cette feuille collez :
VB:
Function Correspondance(MatIn As Range, MatOut As Range, Valeur)
Application.Volatile
Col = 0: Lig = 0
For Each c In MatIn
    aaaa = c.Value
    If c.Value = Valeur Then
        Col = c.Column
        Lig = c.Row - 1
        Exit For
    End If
Next
If Lig = 0 Or Col = 0 Then
    Correspondance = "Non trouvé"
Else
    Correspondance = MatOut(Lig, Col)
End If
End Function
4- Fermez...
Bonjour,
Un fichier permettrait de mieux te comprendre.
Dans ton exemple : comment sait-on que D correspond à la valeur 7 du tableau 1 ? uniquement parce que c'est la même cellule ? (3eme colonne, 4eme ligne)
et où faut-il afficher ce D ?
un essai en pj
Cordialement
 

Pièces jointes

Bonjour,
Difficile à dire. Il n'y a aucune raison.
1- La fonction n'a pas été copiée dans un module.
2- Le fichier doit être enregistré en xslm
3- Les deux tableaux doivent avoir la même dimension
4- L'autorisation des macros doit être activée.
...
 
Bonjour
En fait la proposition de sylvanu m’irai le mieux sauf qu’elle ne fonctionne toujours pas avec Excel 2013 même sous xlsm.
La fonction « correspondance » ne semble pas existée .
Pouvez-vous m’aider à traiter ce dilemme ?
Merci.
 
Bonjour Fabrice,
Correspondance n'est pas une fonction, c'est une fonction personnelle. En d'autres termes une fonction qui est écrite en VBA.
1- Dans votre fichier faites ALT + F11, vous arrivez dans l'éditeur VBA
2- A gauche sur Modules faites Clic droit Insertion puis Modules. Une fenêtre blanche s'ouvre à droite.
3- Dans cette feuille collez :
VB:
Function Correspondance(MatIn As Range, MatOut As Range, Valeur)
Application.Volatile
Col = 0: Lig = 0
For Each c In MatIn
    aaaa = c.Value
    If c.Value = Valeur Then
        Col = c.Column
        Lig = c.Row - 1
        Exit For
    End If
Next
If Lig = 0 Or Col = 0 Then
    Correspondance = "Non trouvé"
Else
    Correspondance = MatOut(Lig, Col)
End If
End Function
4- Fermez l'éditeur VBA. Vous disposez maintenant de la fonction Correspondance, que vous pouvez modifier à votre gré. ( n'oubliez pas de sauvegarder en xlsm et d'autoriser les macros )

J'ai mis un tuto en ressources à ce sujet. Cela permet souvent de faire des choses intéressantes :
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
318
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…