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)
essaye avec : Set BonneFeuille = Bouton(1).MaCell.Parent
j-p
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
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'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