Bonjour,

Envoyé par
Dédé6621
Merci d'avoir essayé, mais ce n'est pas l'objet de ma question.
Je souhaite avoir Sheet en tant qu'Objet et pas en tant que Collection.
J'ai bien consulté l'aide et c'est vrai que ma question revient un peu à demander une crêpe au sucre quand ça n'existe pas.
Dans VB6 et VBA oui. Basic et VB, jusqu'à VB6 et VBA n'ont jamais été conçus comme des langages objets. Ils le sont devenus par la force des choses. Eh oui, dans VBA, on peut avoir des propriétés qui sont, du mois l'équivalent, des objets. D'ailleurs, il existe, depuis des lustres, dans l'aide de VBA une rubrique Intitulée "Renvoi d'un objet à partir d'une collection"
Mais ce n'est pas le cas de VB.net. VB.net a été conçu comme un langage objet. Et c'est pour cela que la compatibilité ascendante entre VB6-VBA et VB.net n'est pas totale. Mais, cela c'est un autre problème.
Donc pour mettre "Nabuchodonosor" dans la cellule "C3" de la feuille "Noé" on peut procéder comme suit:
sheets("Noé").range("C3").value = "Nabuchodonosor"
Cela fait que :
sheets("Noé") est un objet à la fois WorkSheet et Sheet et une propriété d'un objet Workbook
range("C3") est à la fois un objet Range (une cellule, ou une plage de cellules sont des objets Range) et une propriété d'un objet Worksheet ou sheet
value est une propriété d'un objet, ici un objet Range.
Et je sens venir la question : "Pourquoi un objet WorkSheet est aussi un objet Sheet ?"
Parce que pour Excel, tout ce qui peut être une feuille (feuille de calcul, feuille graphique, feuille de macros xl4 ou xl5 et peut-être d'autres que j'oublie) est un objet sheet, membre de la collection Sheets. Mais la feuille de calcul est en fait un objet WorkSheet. Dans un classeur qui a seulement des feuilles de calcul sheet(s) et WorkSheet(s) sont interchangeables.
P.S. Désolé Pierre, je n'avais pas lu toutes les réponses. En répondant à la dernière interrogation, j'ai "débordé" sur la tienne.
Partager