Bonjour à tous
et tout d'abord, merci pour ce forum par lequel j'ai appris beaucoup de choses.
J'ai écris une fonction personnalisée, en VBA.
Quand je l'appelle dans Feuil1, cellule A1 =MaFonction(D5:E8), pas de problème, le résultat renvoyé est celui attendu 🙂
Par contre, quand dans Feuil1, cellule A1 =MaFonction(Feuil2!E3:F6), je récupère #VALEUR.
Je crois deviner qu'il faudrait que je m'occupe de décomposer l'argument pour traiter chaque feuille, puis chaque cellule.
J'ai cherché et trouvé ce sujet : https://www.excel-downloads.com/thr...e-de-recherche-sur-plusieurs-feuilles.108126/
Dans les fichiers contenus dans ce sujet, j'ai trouvé ceci :
Or, je voudrais éviter d'avoir à traiter les feuilles dans un second argument.
Est ce possible, ou suis je obligé de procéder comme ci-dessus ?
Merci pour votre aide. 🙂
et tout d'abord, merci pour ce forum par lequel j'ai appris beaucoup de choses.
J'ai écris une fonction personnalisée, en VBA.
Quand je l'appelle dans Feuil1, cellule A1 =MaFonction(D5:E8), pas de problème, le résultat renvoyé est celui attendu 🙂
Par contre, quand dans Feuil1, cellule A1 =MaFonction(Feuil2!E3:F6), je récupère #VALEUR.
Je crois deviner qu'il faudrait que je m'occupe de décomposer l'argument pour traiter chaque feuille, puis chaque cellule.
J'ai cherché et trouvé ce sujet : https://www.excel-downloads.com/thr...e-de-recherche-sur-plusieurs-feuilles.108126/
Dans les fichiers contenus dans ce sujet, j'ai trouvé ceci :
Code:
Function trf_plage(plage As Range, Optional feuilles As String = "") As Variant
Dim cel As Range, i As Long, j As Integer, tablo() As Variant
Dim feuille1 As String, feuille2 As String
Application.Volatile
i = -1
If feuilles = "" Then feuilles = ActiveSheet.Name & ":" & ActiveSheet.Name
feuille1 = Left(feuilles, InStr(feuilles, ":") - 1)
feuille2 = Right(feuilles, Len(feuilles) - InStr(feuilles, ":"))
(....)
Or, je voudrais éviter d'avoir à traiter les feuilles dans un second argument.
Est ce possible, ou suis je obligé de procéder comme ci-dessus ?
Merci pour votre aide. 🙂