Récupérer le nom d'un classeur d'un Range passé en paramètre

Résolu
_samy_ Messages postés 14 Date d'inscription samedi 15 octobre 2005 Statut Membre Dernière intervention 23 janvier 2008 - 29 août 2006 à 12:15
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 29 août 2006 à 14:19
Bonjour à toutes et à tous,

C'est la première fois que je poste sur ce forum, donc j'espère ne pas m'être trompé de catégorie !

J'ai recherché un peu partout, mais je n'ai rien trouvé (trop de mots dans la recherche).

Voilà, je vous expose mon problème :

Je crée une fonction VBA afin qu'elle soit utilisable dans Excel. Cette fonction est un peu du style "Recherchev".
Cette fonction prend 3 paramètres qui sont des "Range". Ces Ranges peuvent être dans d'autres classeurs ouverts.

Ma question est simple... mais pas évidente à solutionner (pour moi du moins) :
-> Comment, dans mon code VBA, puis-je trouver le nom du classeur de tel ou tel range passé en paramètre ?

Merci par avance pour vos réponses... et n'hésitez pas à me dire si vous voulez plus
d'infos.

Samy.

7 réponses

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
29 août 2006 à 12:53
Non, ca n'existe pas excuse moi, par contre ceci semble marcher :
Range.Parent.Parent.Name

Julien.
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 août 2006 à 12:28
tu as bien la propriété WorkSheet de ta variable Range....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
29 août 2006 à 12:49
Si c'est le classeur qu'il veut ca doit plutot être WorkBook
Essaye
Range.Workbook.Name

Julien.
0
_samy_ Messages postés 14 Date d'inscription samedi 15 octobre 2005 Statut Membre Dernière intervention 23 janvier 2008
29 août 2006 à 13:19
Merci Renfield. J'avais essayé, mais je n'ai pas réussi à monter jusqu'au classeur de Worksheet.

Merci Julien ! Ca marche parfaitement.

A bientôt.
Samy.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
29 août 2006 à 13:28
Salut,

Julien237, ton premier code est effectivement bizarre ! ;)
Par contre, le second est parfait !

Pour expliquer à Samy,
le Parent sert à retrouver l'objet dont appartient Range (enfin, pour cet exemple) :
donc WorkSheet.
le double Parent sert donc à retrouver l'objet de l'objet
(donc l'objet de WorkSheet --> WorkBook)

++
0
_samy_ Messages postés 14 Date d'inscription samedi 15 octobre 2005 Statut Membre Dernière intervention 23 janvier 2008
29 août 2006 à 13:41
Merci Mortalino pour ces explications. J'avais bien vu que cette propriété existait, mais je n'ai même pas pensé à m'en servir.
Je pensais, vu que l'on pouvait avoir le "Range.Worksheet.Name", qu'on pouvait faire la même chose avec "Range.Worksheet.Workbook.Name"... du coup, je suis resté bloqué là dessus.

Encore merci à vous tous pour votre rapidité et votre aide.

A+
Samy.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
29 août 2006 à 14:19
Salut,
_samy_: En suivant  ce que tu essayais, je pense que ceci devrait fonctionner aussi alors:
ObjRange.Worksheet.Parent.Name

@+,   Ju£i?n
0
Rejoignez-nous