Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

récuperer feuille à partir de cellule

2 réponses
Avatar
mike2050
Bonjour à tous!
dans ma macro, j'utilise un module de classe qui me permet d'associer une
action à un commandbutton. et j'ai deux feuilles remplies de ces boutons...
je sais reconnaître la cellule qui se cache sous le bouton variable.
cette cellule s'appelle Bouton(1).MaCell
mais je ne sais pas à quelle feuille appartient cette cellule!!!

j'ai cherché à identifier la feuille comme ceci:

Dim BonneFeuille as Worksheet
Set BonneFeuille = Bouton(1).MaCell.Worksheet

Mais je tombe sur le message :

"Erreur d'exécution '438':
Proppriété ou Méthode non gérée par cet Objet."

lorsque je veux l'utiliser dans :
For Each Num In Workbooks("essai PET.xls").BonneFeuille.Range("C60:C6000")

(L'espion me dit que l'expression BonneFeuille a pris le type
Worksheet/Feuil2 (puisque j'étais dans la feuil2 pour l'essai) mais ne
possède aucune valeur)

comment je peux faire autrement?

2 réponses

Avatar
JpPradier
Bonjour mike2050

essaye avec :
Set BonneFeuille = Bouton(1).MaCell.Parent

j-p
Avatar
mike2050
Bonjour JP,

j'ai fini par trouvé, à force de perséverance et d'un peu de logique grâce à
l'aide :
sachant que Worksheet est une propriété qui renvoie le nom de la feuille
d'une cellule (Range) en LECTURE SEULE, il faut écrire:

Dim BonneFeuille as Worksheet
Set BonneFeuille = Bouton(1).MaCell.Worksheet

Mais ça ne fonctionnait pas puisque comme je le disais, la feuille n'était
pas nommée (elle n'avait pas de valeur dans la fenêtre Espions). Par
conséquent, il fallait la nommer!
Mais la propriété Name, elle, est en lecture/écriture! Donc il faut ajouter
ceci:

Dim NomFeuille as String
NomFeuille = BonneFeuille.Name

et enfin déterminer la plage dans laquelle il faut chercher comme ceci :

For Each Num In Workbooks("essai
PET.xls").Worksheets(NomFeuille).Range("C60:C6000")

et le tour est joué!


Bonjour mike2050

essaye avec :
Set BonneFeuille = Bouton(1).MaCell.Parent

j-p