Bonjour,
mon problème : j'ai une fonction (appelée Secteur() ) qui fait une recherche (vlookup () ) à partir du contenu d'une cellule dans une table nommée "champ" qui se trouve dans le classeur Perso.xls (où se trouve également la fonction).
Cette fonction marche bien tant que je me trouve dans Perso.xls ou que ce classeur est "affiché".
En revanche elle ne fonctionne pas lorsue perso.xls est caché et a fortiori losqu'i n'est pas ouvert.
J'ai essayé en nommant le classeur perso.xla et en important les macros complémentaires : ça ne fonctionne pas...
La fonction est reconnue mais le résultat est : #valeur!.
Je suppose que le champ n'est pas reconnu, mais peut-être le pb vient-il d'ailleurs.
ma fonction (non optimisée ):
Function Secteur(nb As Variant)
'
'test si nombre
If Application.WorksheetFunction.IsNumber(nb) Then
'si nombre < 1000 rajoute un 0 et le transforme en texte sinon transforme le nb en texte
If nb < 1000 Then
nbStr = "0" & Application.WorksheetFunction.Fixed(nb, 0, -2)
Else
nbStr = Application.WorksheetFunction.Fixed(nb, 0, -2)
End If
'fait la recherche de la 4éme colonne correspondante
Secteur = Application.WorksheetFunction.VLookup(nbStr, Range("champ"), 4, False)
End If
'fait la recherche de la 4éme colonne correspondante, lea donnée est déja en texte
Secteur = Application.WorksheetFunction.VLookup(nbStr, Range("champ"), 4, False)
End Function
Merci de vos lumières
Pierre