OVH Cloud OVH Cloud

[Question VBA] Plusieurs workbook

4 réponses
Avatar
Charles
Bonjour,

j'ai un problème sous VBA, et j'ai beau chercher la réponse sur google,
j'ai le sentiment que le problème n'a pas été souvent soumis.

Un workbook sous Excel avec des macros. La, désigner les feuilles c'est
simple, il suffit de faire Sheets("Feuil1"). Maintenant, je veux à
partir de ce workbook créer un autre workbook et travailler sur les deux
en meme temps.

Comment puis-je dont assigner a une variable de type worksheet les
feuilles de chaque workbook? Car quand je viens de créer un workbook, et
que je fais Sheets("Blabla"), la feuille "Blabla" va etre cherchée
dans le nouveau classeur, pas celui d'origine. Ou alors existe t il un
moyen de désigner un workbook qu'on vient de créer et de désigner le
workbook d'origine?

Quelque chose du style mywb = Activeworkbook
newwb = Excel.workbooks.add

Quelqu'un aurait il une idée pour me sortir de la?

Je vous remercie d'avance
Charles

4 réponses

Avatar
papou
Bonjour
Dans ce cas, tu peux "jouer" sur effectivement la notion Activeworkbook et
Thisworkbook où Thisworkbook identifie clairement le classeur qui contient
le code.
Cordialement
Pascal


"Charles" a écrit dans le message de
news:cff7bb$3fu$
Bonjour,

j'ai un problème sous VBA, et j'ai beau chercher la réponse sur google,
j'ai le sentiment que le problème n'a pas été souvent soumis.

Un workbook sous Excel avec des macros. La, désigner les feuilles c'est
simple, il suffit de faire Sheets("Feuil1"). Maintenant, je veux à
partir de ce workbook créer un autre workbook et travailler sur les deux
en meme temps.

Comment puis-je dont assigner a une variable de type worksheet les
feuilles de chaque workbook? Car quand je viens de créer un workbook, et
que je fais Sheets("Blabla"), la feuille "Blabla" va etre cherchée
dans le nouveau classeur, pas celui d'origine. Ou alors existe t il un
moyen de désigner un workbook qu'on vient de créer et de désigner le
workbook d'origine?

Quelque chose du style mywb = Activeworkbook
newwb = Excel.workbooks.add

Quelqu'un aurait il une idée pour me sortir de la?

Je vous remercie d'avance
Charles


Avatar
Charles
Oui mais je cours le risque que l'activeworkbook ne soit plus "actif".
Si par exemple l'utilisateur touche une fenetre pendant l'execution de
la macro, ou que j'ai besoin d'activer un autre workbook, je perds la
trace de celui que j'ai créé.

Existe t il un moyen de désigner par une variable un workbook comme cela
est possible pour une feuille?

dim feuille as worksheet
feuille = sheets("La feuille")

Charles


"papou" <cestpasbonpapou@çanonplus44.fr> wrote in
news::

Bonjour
Dans ce cas, tu peux "jouer" sur effectivement la notion
Activeworkbook et Thisworkbook où Thisworkbook identifie clairement le
classeur qui contient le code.
Cordialement
Pascal


"Charles" a écrit dans le message de
news:cff7bb$3fu$
Bonjour,

j'ai un problème sous VBA, et j'ai beau chercher la réponse sur
google, j'ai le sentiment que le problème n'a pas été souvent soumis.

Un workbook sous Excel avec des macros. La, désigner les feuilles
c'est simple, il suffit de faire Sheets("Feuil1"). Maintenant, je
veux à partir de ce workbook créer un autre workbook et travailler
sur les deux en meme temps.

Comment puis-je dont assigner a une variable de type worksheet les
feuilles de chaque workbook? Car quand je viens de créer un workbook,
et que je fais Sheets("Blabla"), la feuille "Blabla" va etre
cherchée dans le nouveau classeur, pas celui d'origine. Ou alors
existe t il un moyen de désigner un workbook qu'on vient de créer et
de désigner le workbook d'origine?

Quelque chose du style mywb = Activeworkbook
newwb = Excel.workbooks.add

Quelqu'un aurait il une idée pour me sortir de la?

Je vous remercie d'avance
Charles







Avatar
papou
Dim Wbk As WorkBook
Wbk = Workbooks("Toto.xls")

Cordiallement
Pascal

"Charles" a écrit dans le message de
news:cffbjg$bsq$
Oui mais je cours le risque que l'activeworkbook ne soit plus "actif".
Si par exemple l'utilisateur touche une fenetre pendant l'execution de
la macro, ou que j'ai besoin d'activer un autre workbook, je perds la
trace de celui que j'ai créé.

Existe t il un moyen de désigner par une variable un workbook comme cela
est possible pour une feuille?

dim feuille as worksheet
feuille = sheets("La feuille")

Charles


"papou" <cestpasbonpapou@çanonplus44.fr> wrote in
news::

Bonjour
Dans ce cas, tu peux "jouer" sur effectivement la notion
Activeworkbook et Thisworkbook où Thisworkbook identifie clairement le
classeur qui contient le code.
Cordialement
Pascal


"Charles" a écrit dans le message de
news:cff7bb$3fu$
Bonjour,

j'ai un problème sous VBA, et j'ai beau chercher la réponse sur
google, j'ai le sentiment que le problème n'a pas été souvent soumis.

Un workbook sous Excel avec des macros. La, désigner les feuilles
c'est simple, il suffit de faire Sheets("Feuil1"). Maintenant, je
veux à partir de ce workbook créer un autre workbook et travailler
sur les deux en meme temps.

Comment puis-je dont assigner a une variable de type worksheet les
feuilles de chaque workbook? Car quand je viens de créer un workbook,
et que je fais Sheets("Blabla"), la feuille "Blabla" va etre
cherchée dans le nouveau classeur, pas celui d'origine. Ou alors
existe t il un moyen de désigner un workbook qu'on vient de créer et
de désigner le workbook d'origine?

Quelque chose du style mywb = Activeworkbook
newwb = Excel.workbooks.add

Quelqu'un aurait il une idée pour me sortir de la?

Je vous remercie d'avance
Charles










Avatar
papou
Heu ! pardon ! petite modif :
Dim Wbk As Workbook
Set Wbk = Workbooks("Caractères.xls")

Cordialement
Pascal

"papou" <cestpasbonpapou@çanonplus44.fr> a écrit dans le message de
news:%
Dim Wbk As WorkBook
Wbk = Workbooks("Toto.xls")

Cordiallement
Pascal

"Charles" a écrit dans le message de
news:cffbjg$bsq$
Oui mais je cours le risque que l'activeworkbook ne soit plus "actif".
Si par exemple l'utilisateur touche une fenetre pendant l'execution de
la macro, ou que j'ai besoin d'activer un autre workbook, je perds la
trace de celui que j'ai créé.

Existe t il un moyen de désigner par une variable un workbook comme cela
est possible pour une feuille?

dim feuille as worksheet
feuille = sheets("La feuille")

Charles


"papou" <cestpasbonpapou@çanonplus44.fr> wrote in
news::

Bonjour
Dans ce cas, tu peux "jouer" sur effectivement la notion
Activeworkbook et Thisworkbook où Thisworkbook identifie clairement le
classeur qui contient le code.
Cordialement
Pascal


"Charles" a écrit dans le message de
news:cff7bb$3fu$
Bonjour,

j'ai un problème sous VBA, et j'ai beau chercher la réponse sur
google, j'ai le sentiment que le problème n'a pas été souvent soumis.

Un workbook sous Excel avec des macros. La, désigner les feuilles
c'est simple, il suffit de faire Sheets("Feuil1"). Maintenant, je
veux à partir de ce workbook créer un autre workbook et travailler
sur les deux en meme temps.

Comment puis-je dont assigner a une variable de type worksheet les
feuilles de chaque workbook? Car quand je viens de créer un workbook,
et que je fais Sheets("Blabla"), la feuille "Blabla" va etre
cherchée dans le nouveau classeur, pas celui d'origine. Ou alors
existe t il un moyen de désigner un workbook qu'on vient de créer et
de désigner le workbook d'origine?

Quelque chose du style mywb = Activeworkbook
newwb = Excel.workbooks.add

Quelqu'un aurait il une idée pour me sortir de la?

Je vous remercie d'avance
Charles