Bonjour,
J'ai une feuille excel avec deux colonnes: la première contient une liste de ce qu'on peut appeler des abbréviations toutes de 3 caractères et la colonne voisine contient le nom complet qui correspond à l'abbréviation de 3 caractères.
Par exemple en A1 j'ai BUD et en B1 j'ai Budapest, en A2 j'ai MAD et en B2 j'ai Madrid, .....
Le but est de créer une fonction nommée fullname qui me permettrait de retrouver ce à quoi correspond une abbréviation de 3 caractères.
Ainsi, si dans une autre feuille j'ai BUD dans la cellule X1,
si dans X2 j'écris =fullname(X1) alors j'obtiens Budapest dans cette cellule X2
En somme, le tout est de créer une fonction correspondant au code suivant en supposant que dans la feuille 'Sheet1' j'ai mes 2 colonnes dans la plage A1:B30 et que dans une autre feuille j'ai dans la cellule X1 cette abbréviation de 3 caractères dont je veuille le nom complet correspondant:
=INDEX(Sheet1!A1:B30,MATCH(X1,Sheet1!A1:B30,0),2)
Notez que j'utilise la fonction Match au lieu de Equiv car je suis sur une version anglaise.
Donc j'ai fait la tentative suivante pour créer cette fonction mais mes faibles connaissances en la matière ne m'ont pas permis de réussir:
Function fullname(cell As String)
Application.Volatile
Dim plage As Range
Dim col As Range
plage = ActiveWorkbook.Worksheets("Sheet1").Range("A1:B30")
col = ActiveWorkbook.Worksheets("Sheet1").Range("A1:A30")
With Application.WorksheetFunction
fullname = .Index(plage, .Match(cell, col, 0), 2)
End With
End Function
Merci de bien vouloir m'aider à rectifier le tir pour que cela fonctionne
evilwell