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

Trouver le WorkBook pour un WorkSheet

6 réponses
Avatar
J-L
Bonjour,

A partir d'un WorkSheet, je cherche à retrouver le WorkBook
"conteneur".
J'ai essayé:

Dim s As Worksheet
Set s = ActiveSheet
MsgBox s.Parent.Name

Mais ça m'affiche le nom du classeur.

Est-il possible de retrouver le classeur à partir d'une feuille ?

J-L

6 réponses

Avatar
Caetera
> A partir d'un WorkSheet, je cherche à retrouver le WorkBook



MsgBox ActiveWorkbook.Name

Etc
Avatar
MichDenis
Dim s As Worksheet
Dim Wk As Workbook
Set s = ActiveSheet
set Wk = Workbooks(s.Parent.Name)
msgbox Wk.name
Avatar
J-L
MichDenis a écrit :
Dim s As Worksheet
Dim Wk As Workbook
Set s = ActiveSheet
set Wk = Workbooks(s.Parent.Name)




Exactement ce qu'il me fallait, merci
Avatar
Caetera
"J-L" a écrit dans le message de news:

Dim s As Worksheet
Dim Wk As Workbook
Set s = ActiveSheet
set Wk = Workbooks(s.Parent.Name)




Exactement ce qu'il me fallait, merci




Le Workbook de l'ActiveSheet ne serait-il pas le ActiveWorkbook ???

Etc
Avatar
J-L
>
Le Workbook de l'ActiveSheet ne serait-il pas le ActiveWorkbook ???



En fait, j'utilise Excel par OLE depuis une application externe écrite
en delphi. J'ai créé un objet qui pilote facilement Excel. Mais dans
mon application, je peux ouvrir plusieurs classeurs.

J'ai écris une fonction qui déplace une feuille (modification de
l'index). Dans mon arboresence de code, cette fonction est codée au
niveau de la feuille et pas du classeur. Si j'ai plusieurs classeurs
ouverts, Je ne suis pas sur que dans mon code, le classeur que je veux
soit celui qui est actif à un moment donné. C'est pour ça que je
cherchais à connaitre plutôt le WorkBook qui contient la feuille sur
laquelle je veux agir, plutôt que celui qui est actif à un moment
donné.

Mais peut-être que mon raisonnement est faux sur le sujet. Peut-être
qu'au moment où j'utilise une feuille par code, le classeur actif est
bien l'ActiveWorkBook pour Excel. J4avoue ne pas avoir testé.
Avatar
Caetera
"J-L" a écrit dans le message de news:

Mais peut-être que mon raisonnement est faux sur le sujet. Peut-être qu'au
moment où j'utilise une feuille par code,



Utiliser une feuille au travers d'un code n'est pas forcément activer cette
feuille et donc le classeur auquel elle appartient, par contre
"Activesheet" appartient toujours à "ActiveWorkBook"

A toi de voir ce que tu fais dans ton code

Etc