OVH Cloud OVH Cloud

Collection de sheets

6 réponses
Avatar
John Fuss
Bonjour à tous,

je voudrai que ma fonction d'ouverture de fichiers renvoi une collection de
feuilles pour faire un truc comme suit :

Dim sh as worksheet

For each sh in MaFonctionOuvrir(MonFichier)
msgbox sh.name
Next

Merci d'avance.

John.

6 réponses

Avatar
Pierre Fauconnier
Bonjour

function MaFonctionOuvrir(MonFichier as string) as workbook
set mafonctionouvrir=workbooks.open MonFichier
end function

...
...
For each sh in mafonctionouvrir("c:FichiersMonClasseur.xls").worksheets
msgbox sh.name
next sh

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"John Fuss" a écrit dans le message de news:
d47q79$msd$
Bonjour à tous,

je voudrai que ma fonction d'ouverture de fichiers renvoi une collection
de
feuilles pour faire un truc comme suit :

Dim sh as worksheet

For each sh in MaFonctionOuvrir(MonFichier)
msgbox sh.name
Next

Merci d'avance.

John.




Avatar
John Fuss
Ok :-)

Merci bien !

John

"Pierre Fauconnier" a écrit dans le
message de news:%
Bonjour

function MaFonctionOuvrir(MonFichier as string) as workbook
set mafonctionouvrir=workbooks.open MonFichier
end function

...
...
For each sh in mafonctionouvrir("c:FichiersMonClasseur.xls").worksheets
msgbox sh.name
next sh

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"John Fuss" a écrit dans le message de news:
d47q79$msd$
Bonjour à tous,

je voudrai que ma fonction d'ouverture de fichiers renvoi une collection
de
feuilles pour faire un truc comme suit :

Dim sh as worksheet

For each sh in MaFonctionOuvrir(MonFichier)
msgbox sh.name
Next

Merci d'avance.

John.








Avatar
John Fuss
Dans le cas où je ne veux pas balayer toutes les feuilles mais juste
certaines il y a une solution ?

Est-ce que c'est pas tordu de faire une classe avec une feuille et de faire
une collection d'instance de cette classe ?

Merci d'avance.

John

"John Fuss" a écrit dans le message de
news:d4831t$rra$
Ok :-)

Merci bien !

John

"Pierre Fauconnier" a écrit dans le
message de news:%
Bonjour

function MaFonctionOuvrir(MonFichier as string) as workbook
set mafonctionouvrir=workbooks.open MonFichier
end function

...
...
For each sh in
mafonctionouvrir("c:FichiersMonClasseur.xls").worksheets


msgbox sh.name
next sh

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"John Fuss" a écrit dans le message de news:
d47q79$msd$
Bonjour à tous,

je voudrai que ma fonction d'ouverture de fichiers renvoi une
collection



de
feuilles pour faire un truc comme suit :

Dim sh as worksheet

For each sh in MaFonctionOuvrir(MonFichier)
msgbox sh.name
Next

Merci d'avance.

John.












Avatar
Pierre Fauconnier
Le tout est de voir ce ce que tu entends par "certaines". S'il y a une
logique informatique qui permet de créer une séquence, on peut sûrement
trouver une boucle ou une technique ...

A toi de nous détailler les critères qui permettraient de sélectionner les
fenêtres.

Note que si tu dois réutiliser le classeur par la suite, il n'est pas
intéressant de l'ouvrir une deuxième fois. Tu as peut-être intérêt à
utiliser la syntaxe suivante, avec la même fonction qui ouvre le classeur

Dim MonClasseur as workbook
dim sh as worksheet
set MonClasseur = MaFonctionOuvrir(MonFichier as string)

for each sh in monclasseur.worksheets
...
next sh

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


function
"John Fuss" a écrit dans le message de news:
d48398$s2l$
Dans le cas où je ne veux pas balayer toutes les feuilles mais juste
certaines il y a une solution ?

Est-ce que c'est pas tordu de faire une classe avec une feuille et de
faire
une collection d'instance de cette classe ?

Merci d'avance.

John

"John Fuss" a écrit dans le message de
news:d4831t$rra$
Ok :-)

Merci bien !

John

"Pierre Fauconnier" a écrit dans le
message de news:%
Bonjour

function MaFonctionOuvrir(MonFichier as string) as workbook
set mafonctionouvrir=workbooks.open MonFichier
end function

...
...
For each sh in
mafonctionouvrir("c:FichiersMonClasseur.xls").worksheets


msgbox sh.name
next sh

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"John Fuss" a écrit dans le message de news:
d47q79$msd$
Bonjour à tous,

je voudrai que ma fonction d'ouverture de fichiers renvoi une
collection



de
feuilles pour faire un truc comme suit :

Dim sh as worksheet

For each sh in MaFonctionOuvrir(MonFichier)
msgbox sh.name
Next

Merci d'avance.

John.
















Avatar
John Fuss
Pour décrire ce que je veux :

ma fonction MaFonctionOuvrir permet d'ouvrir principalement des fichiers
Ascii dans un classeur donné
il se peut qu'il y est déja des feuilles dans ce classeur et donc je voudrai
pouvoir faire :

dim sh as worksheet
For each sh in MaFonctionOuvrir("toto.asc", "MonClasseur.xls")
....
Next

où les différents sh serait les feuilles ajoutées par ma fonction
MaFonctionOuvrir() car dans le cas de l'ouverture
d'1 fichier Ascii contenant plus de 65536 lignes plusieurs feuilles sont
crées !

J'espère avoir été clair.

John

"Pierre Fauconnier" a écrit dans le
message de news:
Le tout est de voir ce ce que tu entends par "certaines". S'il y a une
logique informatique qui permet de créer une séquence, on peut sûrement
trouver une boucle ou une technique ...

A toi de nous détailler les critères qui permettraient de sélectionner les
fenêtres.

Note que si tu dois réutiliser le classeur par la suite, il n'est pas
intéressant de l'ouvrir une deuxième fois. Tu as peut-être intérêt à
utiliser la syntaxe suivante, avec la même fonction qui ouvre le classeur

Dim MonClasseur as workbook
dim sh as worksheet
set MonClasseur = MaFonctionOuvrir(MonFichier as string)

for each sh in monclasseur.worksheets
...
next sh

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


function
"John Fuss" a écrit dans le message de news:
d48398$s2l$
Dans le cas où je ne veux pas balayer toutes les feuilles mais juste
certaines il y a une solution ?

Est-ce que c'est pas tordu de faire une classe avec une feuille et de
faire
une collection d'instance de cette classe ?

Merci d'avance.

John

"John Fuss" a écrit dans le message de
news:d4831t$rra$
Ok :-)

Merci bien !

John

"Pierre Fauconnier" a écrit dans le
message de news:%
Bonjour

function MaFonctionOuvrir(MonFichier as string) as workbook
set mafonctionouvrir=workbooks.open MonFichier
end function

...
...
For each sh in
mafonctionouvrir("c:FichiersMonClasseur.xls").worksheets


msgbox sh.name
next sh

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"John Fuss" a écrit dans le message de news:
d47q79$msd$
Bonjour à tous,

je voudrai que ma fonction d'ouverture de fichiers renvoi une
collection



de
feuilles pour faire un truc comme suit :

Dim sh as worksheet

For each sh in MaFonctionOuvrir(MonFichier)
msgbox sh.name
Next

Merci d'avance.

John.




















Avatar
Pierre Fauconnier
Bonjour John,

Je ne suis certain d'avoir tout compris, mais tu pourrais peut-être
t'inspirer de ce qui suit

dim Tableau()

function MaFonctionOuvrir(...) as workbook
redim Tableau(0)
...
...
' Création d'une feuille
if ubound(tableau)>0 then redim tableau(ubound(tableau)+1)
tableau(ubound(tableau)="NomDeMaFeuille"
...
end function

sub MaProc
dim Classeur as workbook
dim MaFeuille as worksheet

set classeur = mafonctionouvrir(...)
for i = 0 to ubound(tableau)
set MaFeuille = Classeur.worksheets(tableau(i))
next i

...


"John Fuss" a écrit dans le message de news:
d48c8m$1lp$
Pour décrire ce que je veux :

ma fonction MaFonctionOuvrir permet d'ouvrir principalement des fichiers
Ascii dans un classeur donné
il se peut qu'il y est déja des feuilles dans ce classeur et donc je
voudrai
pouvoir faire :

dim sh as worksheet
For each sh in MaFonctionOuvrir("toto.asc", "MonClasseur.xls")
....
Next

où les différents sh serait les feuilles ajoutées par ma fonction
MaFonctionOuvrir() car dans le cas de l'ouverture
d'1 fichier Ascii contenant plus de 65536 lignes plusieurs feuilles sont
crées !

J'espère avoir été clair.

John

"Pierre Fauconnier" a écrit dans le
message de news:
Le tout est de voir ce ce que tu entends par "certaines". S'il y a une
logique informatique qui permet de créer une séquence, on peut sûrement
trouver une boucle ou une technique ...

A toi de nous détailler les critères qui permettraient de sélectionner
les
fenêtres.

Note que si tu dois réutiliser le classeur par la suite, il n'est pas
intéressant de l'ouvrir une deuxième fois. Tu as peut-être intérêt à
utiliser la syntaxe suivante, avec la même fonction qui ouvre le classeur

Dim MonClasseur as workbook
dim sh as worksheet
set MonClasseur = MaFonctionOuvrir(MonFichier as string)

for each sh in monclasseur.worksheets
...
next sh

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


function
"John Fuss" a écrit dans le message de news:
d48398$s2l$
Dans le cas où je ne veux pas balayer toutes les feuilles mais juste
certaines il y a une solution ?

Est-ce que c'est pas tordu de faire une classe avec une feuille et de
faire
une collection d'instance de cette classe ?

Merci d'avance.

John

"John Fuss" a écrit dans le message de
news:d4831t$rra$
Ok :-)

Merci bien !

John

"Pierre Fauconnier" a écrit dans le
message de news:%
Bonjour

function MaFonctionOuvrir(MonFichier as string) as workbook
set mafonctionouvrir=workbooks.open MonFichier
end function

...
...
For each sh in
mafonctionouvrir("c:FichiersMonClasseur.xls").worksheets


msgbox sh.name
next sh

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"John Fuss" a écrit dans le message de news:
d47q79$msd$
Bonjour à tous,

je voudrai que ma fonction d'ouverture de fichiers renvoi une
collection



de
feuilles pour faire un truc comme suit :

Dim sh as worksheet

For each sh in MaFonctionOuvrir(MonFichier)
msgbox sh.name
Next

Merci d'avance.

John.