OVH Cloud OVH Cloud

VBA - classeur générateur de classeur - tranfert macro de feuille

5 réponses
Avatar
twinley
Bonjour à tous

Plus je lis les sites XL, moins j'ai les idées claires.

Je cherche à construire un classeur qui génère un autre classeur.

Dans le classeur générateur :
j'ai une feuille index avec une liste de clients.
j'ai toutes les macros dans des modules standards qui vont initialiser le
nouveau classeur pour l'année 2005.
j'ai une macro event sous forme de commentaire dans un module standard.

Dans le nouveau classeur 2005
Le but c'est de compter les heures passées pour chaque client par mois.
Je désire transférer l'onglet index avec la liste des clients
Je lancerai la macro pour ajouter 12 onglets supplémentaires Janvier à
Décembre et elle créera le calendrier de chaque mois.

Dans un classeur de test en local, les macros fonctionnent.

Le problème c'est comment copier la macro event (qui est pour l'instant en
commentaire dans un module std ) dans les 12 modules feuille qui vont être
créé par macro ?
Et aussi récupérer la feuille index avec la liste des clients et les macros
qui sont dans les modules standards ?

J'ai vu qu'il existe des fichiers.xla et plein de trucs, mais je suis perdu.
J'ai trouvé une macro chez F. Sigonneau qui copie une macro dans un autre
classeur mais je ne comprend pas pour la copier dans un module de feuille.
Avant de me lancer sur cette piste, j'aimerai voir vos commentaires ou des
nouvelles pistes que j'aurais loupé.

Merci pour votre aide

--
à+twinley

5 réponses

Avatar
Pierre Fauconnier
Salut...

Une idée parmi d'autres...

En VBA, sauvez le classeur en tant que modèle, ouvrir ce modèle, le nettoyer
des données non utiles, le sauver, puis créer un nouveau classeur sur base
de ce modèle...

Ok?


--
Pierre Fauconnier ()
Les sept laids tuent ( Lewis Carol )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"twinley" <twinleym(at)hotmail.com> a écrit dans le message de
news:
Bonjour à tous

Plus je lis les sites XL, moins j'ai les idées claires.

Je cherche à construire un classeur qui génère un autre classeur.

Dans le classeur générateur :
j'ai une feuille index avec une liste de clients.
j'ai toutes les macros dans des modules standards qui vont initialiser le
nouveau classeur pour l'année 2005.
j'ai une macro event sous forme de commentaire dans un module standard.

Dans le nouveau classeur 2005
Le but c'est de compter les heures passées pour chaque client par mois.
Je désire transférer l'onglet index avec la liste des clients
Je lancerai la macro pour ajouter 12 onglets supplémentaires Janvier à
Décembre et elle créera le calendrier de chaque mois.

Dans un classeur de test en local, les macros fonctionnent.

Le problème c'est comment copier la macro event (qui est pour l'instant en
commentaire dans un module std ) dans les 12 modules feuille qui vont
être

créé par macro ?
Et aussi récupérer la feuille index avec la liste des clients et les
macros

qui sont dans les modules standards ?

J'ai vu qu'il existe des fichiers.xla et plein de trucs, mais je suis
perdu.

J'ai trouvé une macro chez F. Sigonneau qui copie une macro dans un autre
classeur mais je ne comprend pas pour la copier dans un module de feuille.
Avant de me lancer sur cette piste, j'aimerai voir vos commentaires ou des
nouvelles pistes que j'aurais loupé.

Merci pour votre aide

--
à+twinley




Avatar
Pierre Fauconnier
Dis, tant que j'y suis, en y réfléchissant..

Et en vba, sauvez le classeur sous le nouveau nom puis le nettoyer... ?

Pierre

"twinley" <twinleym(at)hotmail.com> a écrit dans le message de
news:
Bonjour à tous

Plus je lis les sites XL, moins j'ai les idées claires.

Je cherche à construire un classeur qui génère un autre classeur.

Dans le classeur générateur :
j'ai une feuille index avec une liste de clients.
j'ai toutes les macros dans des modules standards qui vont initialiser le
nouveau classeur pour l'année 2005.
j'ai une macro event sous forme de commentaire dans un module standard.

Dans le nouveau classeur 2005
Le but c'est de compter les heures passées pour chaque client par mois.
Je désire transférer l'onglet index avec la liste des clients
Je lancerai la macro pour ajouter 12 onglets supplémentaires Janvier à
Décembre et elle créera le calendrier de chaque mois.

Dans un classeur de test en local, les macros fonctionnent.

Le problème c'est comment copier la macro event (qui est pour l'instant en
commentaire dans un module std ) dans les 12 modules feuille qui vont
être

créé par macro ?
Et aussi récupérer la feuille index avec la liste des clients et les
macros

qui sont dans les modules standards ?

J'ai vu qu'il existe des fichiers.xla et plein de trucs, mais je suis
perdu.

J'ai trouvé une macro chez F. Sigonneau qui copie une macro dans un autre
classeur mais je ne comprend pas pour la copier dans un module de feuille.
Avant de me lancer sur cette piste, j'aimerai voir vos commentaires ou des
nouvelles pistes que j'aurais loupé.

Merci pour votre aide

--
à+twinley




Avatar
twinley
Bonjour Pierre,

Merci de te pencher sur ma prose.

Je n'ai pas encore automatisé la sauvegarde du classeur, mais j'ai la
syntaxe.
Ce qui m'a bloqué dans cette variante, c'est que quand je supprimais la
feuille janvier qui contient la macro event dans le module feuille, cette
dernière disparaissait.
D'ou mon idée de sauver cette macro event sous forme de texte pour la
replacer après la création de la nouvelle feuille.
Mais en lisant ton idée, il suffit de supprimer le contenu des cellules et
comme cela je garde mes macros de feuille en place.
Quand on a la tête dans le sac c'est dur. Je ne dirais pas c'est tout con
car je risque de réveiller jps. Je n'y ai pas pensé car j'ai créé une macro
qui crée 12 feuilles. Du coup je voulais m'en servir à chaque fois.

Merci pour l'avancée que je qualifierais de majeure...

--
à+twinley
"Pierre Fauconnier" a écrit dans le
message de news:%
Dis, tant que j'y suis, en y réfléchissant..

Et en vba, sauvez le classeur sous le nouveau nom puis le nettoyer... ?

Pierre

"twinley" <twinleym(at)hotmail.com> a écrit dans le message de
news:
Bonjour à tous

Plus je lis les sites XL, moins j'ai les idées claires.

Je cherche à construire un classeur qui génère un autre classeur.

Dans le classeur générateur :
j'ai une feuille index avec une liste de clients.
j'ai toutes les macros dans des modules standards qui vont initialiser
le


nouveau classeur pour l'année 2005.
j'ai une macro event sous forme de commentaire dans un module standard.

Dans le nouveau classeur 2005
Le but c'est de compter les heures passées pour chaque client par mois.
Je désire transférer l'onglet index avec la liste des clients
Je lancerai la macro pour ajouter 12 onglets supplémentaires Janvier à
Décembre et elle créera le calendrier de chaque mois.

Dans un classeur de test en local, les macros fonctionnent.

Le problème c'est comment copier la macro event (qui est pour l'instant
en


commentaire dans un module std ) dans les 12 modules feuille qui vont
être

créé par macro ?
Et aussi récupérer la feuille index avec la liste des clients et les
macros

qui sont dans les modules standards ?

J'ai vu qu'il existe des fichiers.xla et plein de trucs, mais je suis
perdu.

J'ai trouvé une macro chez F. Sigonneau qui copie une macro dans un
autre


classeur mais je ne comprend pas pour la copier dans un module de
feuille.


Avant de me lancer sur cette piste, j'aimerai voir vos commentaires ou
des


nouvelles pistes que j'aurais loupé.

Merci pour votre aide

--
à+twinley








Avatar
Pierre Fauconnier
De rien...

C'est en inventant de multiples usines à gaz que je me suis rendu compte que
je pouvais faire plus simple.

Un bon truc avec les macros de feuilles, c'est de les mettre dans une
feuille "modèle" invisible ( veryhidden ) et de générer la nouvelle feuille
ayant besoin des macros sur base de ce modèle. Cela évite de devoir
manipuler les objets VBComponents.

Bon week-end.

Pierre

"twinley" <twinleym(at)hotmail.com> a écrit dans le message de
news:
Bonjour Pierre,

Merci de te pencher sur ma prose.

Je n'ai pas encore automatisé la sauvegarde du classeur, mais j'ai la
syntaxe.
Ce qui m'a bloqué dans cette variante, c'est que quand je supprimais la
feuille janvier qui contient la macro event dans le module feuille, cette
dernière disparaissait.
D'ou mon idée de sauver cette macro event sous forme de texte pour la
replacer après la création de la nouvelle feuille.
Mais en lisant ton idée, il suffit de supprimer le contenu des cellules et
comme cela je garde mes macros de feuille en place.
Quand on a la tête dans le sac c'est dur. Je ne dirais pas c'est tout con
car je risque de réveiller jps. Je n'y ai pas pensé car j'ai créé une
macro

qui crée 12 feuilles. Du coup je voulais m'en servir à chaque fois.

Merci pour l'avancée que je qualifierais de majeure...

--
à+twinley
"Pierre Fauconnier" a écrit dans le
message de news:%
Dis, tant que j'y suis, en y réfléchissant..

Et en vba, sauvez le classeur sous le nouveau nom puis le nettoyer... ?

Pierre

"twinley" <twinleym(at)hotmail.com> a écrit dans le message de
news:
Bonjour à tous

Plus je lis les sites XL, moins j'ai les idées claires.

Je cherche à construire un classeur qui génère un autre classeur.

Dans le classeur générateur :
j'ai une feuille index avec une liste de clients.
j'ai toutes les macros dans des modules standards qui vont initialiser
le


nouveau classeur pour l'année 2005.
j'ai une macro event sous forme de commentaire dans un module
standard.




Dans le nouveau classeur 2005
Le but c'est de compter les heures passées pour chaque client par
mois.



Je désire transférer l'onglet index avec la liste des clients
Je lancerai la macro pour ajouter 12 onglets supplémentaires Janvier
à



Décembre et elle créera le calendrier de chaque mois.

Dans un classeur de test en local, les macros fonctionnent.

Le problème c'est comment copier la macro event (qui est pour
l'instant



en
commentaire dans un module std ) dans les 12 modules feuille qui vont
être

créé par macro ?
Et aussi récupérer la feuille index avec la liste des clients et les
macros

qui sont dans les modules standards ?

J'ai vu qu'il existe des fichiers.xla et plein de trucs, mais je suis
perdu.

J'ai trouvé une macro chez F. Sigonneau qui copie une macro dans un
autre


classeur mais je ne comprend pas pour la copier dans un module de
feuille.


Avant de me lancer sur cette piste, j'aimerai voir vos commentaires ou
des


nouvelles pistes que j'aurais loupé.

Merci pour votre aide

--
à+twinley












Avatar
twinley
Merci pour le tuyau, le métier rentre doucement, très doucement, et j'ai
perdu ma première version de macro de feuille en tuant la feuille. Il faut
en passer par là.
Le coup de vouloir utiliser une usine à gaz à tout prix parce qu'on l'a créé
est un cas d'école.
Bon WE

--
à+twinley
"Pierre Fauconnier" a écrit dans le
message de news:
De rien...

C'est en inventant de multiples usines à gaz que je me suis rendu compte
que

je pouvais faire plus simple.

Un bon truc avec les macros de feuilles, c'est de les mettre dans une
feuille "modèle" invisible ( veryhidden ) et de générer la nouvelle
feuille

ayant besoin des macros sur base de ce modèle. Cela évite de devoir
manipuler les objets VBComponents.

Bon week-end.

Pierre

"twinley" <twinleym(at)hotmail.com> a écrit dans le message de
news:
Bonjour Pierre,

Merci de te pencher sur ma prose.

Je n'ai pas encore automatisé la sauvegarde du classeur, mais j'ai la
syntaxe.
Ce qui m'a bloqué dans cette variante, c'est que quand je supprimais la
feuille janvier qui contient la macro event dans le module feuille,
cette


dernière disparaissait.
D'ou mon idée de sauver cette macro event sous forme de texte pour la
replacer après la création de la nouvelle feuille.
Mais en lisant ton idée, il suffit de supprimer le contenu des cellules
et


comme cela je garde mes macros de feuille en place.
Quand on a la tête dans le sac c'est dur. Je ne dirais pas c'est tout
con


car je risque de réveiller jps. Je n'y ai pas pensé car j'ai créé une
macro

qui crée 12 feuilles. Du coup je voulais m'en servir à chaque fois.

Merci pour l'avancée que je qualifierais de majeure...

--
à+twinley
"Pierre Fauconnier" a écrit dans le
message de news:%
Dis, tant que j'y suis, en y réfléchissant..

Et en vba, sauvez le classeur sous le nouveau nom puis le nettoyer...
?




Pierre

"twinley" <twinleym(at)hotmail.com> a écrit dans le message de
news:
Bonjour à tous

Plus je lis les sites XL, moins j'ai les idées claires.

Je cherche à construire un classeur qui génère un autre classeur.

Dans le classeur générateur :
j'ai une feuille index avec une liste de clients.
j'ai toutes les macros dans des modules standards qui vont
initialiser




le
nouveau classeur pour l'année 2005.
j'ai une macro event sous forme de commentaire dans un module
standard.




Dans le nouveau classeur 2005
Le but c'est de compter les heures passées pour chaque client par
mois.



Je désire transférer l'onglet index avec la liste des clients
Je lancerai la macro pour ajouter 12 onglets supplémentaires
Janvier




à
Décembre et elle créera le calendrier de chaque mois.

Dans un classeur de test en local, les macros fonctionnent.

Le problème c'est comment copier la macro event (qui est pour
l'instant



en
commentaire dans un module std ) dans les 12 modules feuille qui
vont




être
créé par macro ?
Et aussi récupérer la feuille index avec la liste des clients et les
macros

qui sont dans les modules standards ?

J'ai vu qu'il existe des fichiers.xla et plein de trucs, mais je
suis




perdu.
J'ai trouvé une macro chez F. Sigonneau qui copie une macro dans un
autre


classeur mais je ne comprend pas pour la copier dans un module de
feuille.


Avant de me lancer sur cette piste, j'aimerai voir vos commentaires
ou




des
nouvelles pistes que j'aurais loupé.

Merci pour votre aide

--
à+twinley