Fonction personnalisée appliquée à plusieurs feuilles

hooters

XLDnaute Nouveau
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 :
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. :)
 
G

Guest

Guest
Re : Fonction personnalisée appliquée à plusieurs feuilles

Bonjour et bienvenue,

Il nous faudrait la totalité de la fonction avec un fichier exemple pour pouvoir t'aider plus précisément.

De façon général, une variable ou paramètre de Type Range contient en soi ces ascendants:

Code:
Dim C as Range
Dim Sh as WorkSheet
Dim wk as WorkBook
 
Set C= range("A1")
set Sh = c.Parent 'Feuille de Range("A1")
set wk= Sh.Parent 'Classeur de la feuille de C
ou
set wk= C.Parent.Parent 'Classeur de C
A+
 

Discussions similaires

Statistiques des forums

Discussions
313 769
Messages
2 102 234
Membres
108 181
dernier inscrit
Chr1sD