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

copie d'un module du projet vb en cours vers un autre classeur

3 réponses
Avatar
laurentbosc
Bonjour,

voila j ai un peitit souci sous excel:

Depuis un classeur A, je cree un classeur B (via la methode Add). A un
moment donn=E9 je fais dynamiquement une copie de certains modules du
projet VB de mon classeur A vers mon classeur B, car. Cela fonctionne
bien.
(L'id=E9e principale etant d'avoir un classeur maitre avec les donn=E9es
et macros, qui pilote un certain nombre d actions. Chaque action ouvre
un classeur sp=E9cifique, qui a des fonction bien d=E9finies. Ces
fonctions je les copie du classeur maitre vers le classuer cree, afin
qu'elles soient accessibles)
-
J ai par la suite d=E9cid=E9 de prot=E9g=E9 le projet VB par mot de passe.
Et l=E0, la copie de module ne fonctionne plus, bien qu'aucun message d
erreur n apparaisse. Du coup mon classuer n a pas les modules dont il a
besoin :(

Donc pour l instant je ne peux pas prot=E9ger mon code si je veux que ca
fonctionne.

J ai quand meme test=E9 plusieurs m=E9thodes pour pallier =E0 ca:
* sendkeyspour simuler la protection/d=E9protection : la deprotection
fonctionne, mais la protection n est effective qu au prochaine
redemarrage, ce qui ne me conviens pas, car pendant ce temps, le code
est accessible!
* Passer par les macros compl=E9mentaires : En fait j'ai pas vraiment
r=E9ussi a faire quelques chose de propre et fonctionnel et puis ca
oblige a avoir un fichier suppl=E9mentaire .xla, ce qui m embete un peu.

La seule chose qui me reste est de faire une copie du classeur A, et de
le renommer en B, et de le "vider" de ses feuilles pour faire comme si
le classeur =E9tait vierge. Ainsi je pourrais garder les

vez vous des id=E9es autre? ou des remarques?=20

Merci de votre aide...

3 réponses

Avatar
Poulpor
Bonjour Laurent,

Une autre soluce qui à mes yeux est plus propre : tu peux créer et
distribuer un xla que tu mettras sur chaque poste client au même endoit (ex :
C:Program Filestotototo.xla). Sur ce xla, tu stockes tous les codes dont
tu as besoin, des procédures et même des fonctions.

Ainsi, tu peux faire créer un classeur à tes clients + ils ont des
fonctionnalités vba que tu as programmé.

Astuce : le petit logiciel 'inno setup' permet de créer gratuitement un
setup qui :

- crée un répertoire toto
- dépose toto.xla à l'endroit proposé
- peut envoyer des clés de registre (intérêt => que les macros
complementaires soient précochées
-crée dans le menu démarrer un groupe où tu pourras mettre la fonction
'désinstaller'.

Et ton projet peut être protégé sans problème.

L'inconvénient de cette solution, s'il s'agit d'un projet d'entreprise de
moyennegrosse taille, il faudra gérer les versions sur chaque poste client.


Poulpor



Bonjour,

voila j ai un peitit souci sous excel:

Depuis un classeur A, je cree un classeur B (via la methode Add). A un
moment donné je fais dynamiquement une copie de certains modules du
projet VB de mon classeur A vers mon classeur B, car. Cela fonctionne
bien.
(L'idée principale etant d'avoir un classeur maitre avec les données
et macros, qui pilote un certain nombre d actions. Chaque action ouvre
un classeur spécifique, qui a des fonction bien définies. Ces
fonctions je les copie du classeur maitre vers le classuer cree, afin
qu'elles soient accessibles)
-
J ai par la suite décidé de protégé le projet VB par mot de passe.
Et là, la copie de module ne fonctionne plus, bien qu'aucun message d
erreur n apparaisse. Du coup mon classuer n a pas les modules dont il a
besoin :(

Donc pour l instant je ne peux pas protéger mon code si je veux que ca
fonctionne.

J ai quand meme testé plusieurs méthodes pour pallier à ca:
* sendkeyspour simuler la protection/déprotection : la deprotection
fonctionne, mais la protection n est effective qu au prochaine
redemarrage, ce qui ne me conviens pas, car pendant ce temps, le code
est accessible!
* Passer par les macros complémentaires : En fait j'ai pas vraiment
réussi a faire quelques chose de propre et fonctionnel et puis ca
oblige a avoir un fichier supplémentaire .xla, ce qui m embete un peu.

La seule chose qui me reste est de faire une copie du classeur A, et de
le renommer en B, et de le "vider" de ses feuilles pour faire comme si
le classeur était vierge. Ainsi je pourrais garder les

vez vous des idées autre? ou des remarques?

Merci de votre aide...




Avatar
laurentbosc
Merci de tes infos.

J'ai crée un fichier .xla ne contenant que les modules et userform
necessaires.
Dans mon fichier excel, j ai supprimé les modules (sinon il y aurait
doublon), et j ai coché la macro complémentaire créée.
Et quand je relance mon fichier excel... il ne trouve pas les fonctions
: 'Sub ou fonction non définie' ? Alors dans l editeur VB, je vois
bien ma macro complémentaire...???




Bonjour Laurent,

Une autre soluce qui à mes yeux est plus propre : tu peux créer et
distribuer un xla que tu mettras sur chaque poste client au même endoit (ex :
C:Program Filestotototo.xla). Sur ce xla, tu stockes tous les codes do nt
tu as besoin, des procédures et même des fonctions.

Ainsi, tu peux faire créer un classeur à tes clients + ils ont des
fonctionnalités vba que tu as programmé.

Astuce : le petit logiciel 'inno setup' permet de créer gratuitement un
setup qui :

- crée un répertoire toto
- dépose toto.xla à l'endroit proposé
- peut envoyer des clés de registre (intérêt => que les macros
complementaires soient précochées
-crée dans le menu démarrer un groupe où tu pourras mettre la fonct ion
'désinstaller'.

Et ton projet peut être protégé sans problème.

L'inconvénient de cette solution, s'il s'agit d'un projet d'entreprise de
moyennegrosse taille, il faudra gérer les versions sur chaque poste cl ient.


Poulpor



Bonjour,

voila j ai un peitit souci sous excel:

Depuis un classeur A, je cree un classeur B (via la methode Add). A un
moment donné je fais dynamiquement une copie de certains modules du
projet VB de mon classeur A vers mon classeur B, car. Cela fonctionne
bien.
(L'idée principale etant d'avoir un classeur maitre avec les données
et macros, qui pilote un certain nombre d actions. Chaque action ouvre
un classeur spécifique, qui a des fonction bien définies. Ces
fonctions je les copie du classeur maitre vers le classuer cree, afin
qu'elles soient accessibles)
-
J ai par la suite décidé de protégé le projet VB par mot de pas se.
Et là, la copie de module ne fonctionne plus, bien qu'aucun message d
erreur n apparaisse. Du coup mon classuer n a pas les modules dont il a
besoin :(

Donc pour l instant je ne peux pas protéger mon code si je veux que ca
fonctionne.

J ai quand meme testé plusieurs méthodes pour pallier à ca:
* sendkeyspour simuler la protection/déprotection : la deprotection
fonctionne, mais la protection n est effective qu au prochaine
redemarrage, ce qui ne me conviens pas, car pendant ce temps, le code
est accessible!
* Passer par les macros complémentaires : En fait j'ai pas vraiment
réussi a faire quelques chose de propre et fonctionnel et puis ca
oblige a avoir un fichier supplémentaire .xla, ce qui m embete un peu.

La seule chose qui me reste est de faire une copie du classeur A, et de
le renommer en B, et de le "vider" de ses feuilles pour faire comme si
le classeur était vierge. Ainsi je pourrais garder les

vez vous des idées autre? ou des remarques?

Merci de votre aide...






Avatar
laurentbosc
En associant ma macro au fichier xls, dans l editeur VB
outil/references, ca fonctionne deja mieux!
Par contre toutes mes references thisworkbook font planter le
programme. Il faut que je les remplace par activeworkbook, ce qui me
gene un peu... Est ce normal?


Merci de tes infos.

J'ai crée un fichier .xla ne contenant que les modules et userform
necessaires.
Dans mon fichier excel, j ai supprimé les modules (sinon il y aurait
doublon), et j ai coché la macro complémentaire créée.
Et quand je relance mon fichier excel... il ne trouve pas les fonctions
: 'Sub ou fonction non définie' ? Alors dans l editeur VB, je vois
bien ma macro complémentaire...???




Bonjour Laurent,

Une autre soluce qui à mes yeux est plus propre : tu peux créer et
distribuer un xla que tu mettras sur chaque poste client au même endo it (ex :
C:Program Filestotototo.xla). Sur ce xla, tu stockes tous les codes dont
tu as besoin, des procédures et même des fonctions.

Ainsi, tu peux faire créer un classeur à tes clients + ils ont des
fonctionnalités vba que tu as programmé.

Astuce : le petit logiciel 'inno setup' permet de créer gratuitement un
setup qui :

- crée un répertoire toto
- dépose toto.xla à l'endroit proposé
- peut envoyer des clés de registre (intérêt => que les macros
complementaires soient précochées
-crée dans le menu démarrer un groupe où tu pourras mettre la fon ction
'désinstaller'.

Et ton projet peut être protégé sans problème.

L'inconvénient de cette solution, s'il s'agit d'un projet d'entrepris e de
moyennegrosse taille, il faudra gérer les versions sur chaque poste client.


Poulpor



Bonjour,

voila j ai un peitit souci sous excel:

Depuis un classeur A, je cree un classeur B (via la methode Add). A un
moment donné je fais dynamiquement une copie de certains modules du
projet VB de mon classeur A vers mon classeur B, car. Cela fonctionne
bien.
(L'idée principale etant d'avoir un classeur maitre avec les donn ées
et macros, qui pilote un certain nombre d actions. Chaque action ouvre
un classeur spécifique, qui a des fonction bien définies. Ces
fonctions je les copie du classeur maitre vers le classuer cree, afin
qu'elles soient accessibles)
-
J ai par la suite décidé de protégé le projet VB par mot de p asse.
Et là, la copie de module ne fonctionne plus, bien qu'aucun message d
erreur n apparaisse. Du coup mon classuer n a pas les modules dont il a
besoin :(

Donc pour l instant je ne peux pas protéger mon code si je veux que ca
fonctionne.

J ai quand meme testé plusieurs méthodes pour pallier à ca:
* sendkeyspour simuler la protection/déprotection : la deprotection
fonctionne, mais la protection n est effective qu au prochaine
redemarrage, ce qui ne me conviens pas, car pendant ce temps, le code
est accessible!
* Passer par les macros complémentaires : En fait j'ai pas vraiment
réussi a faire quelques chose de propre et fonctionnel et puis ca
oblige a avoir un fichier supplémentaire .xla, ce qui m embete un p eu.

La seule chose qui me reste est de faire une copie du classeur A, et de
le renommer en B, et de le "vider" de ses feuilles pour faire comme si
le classeur était vierge. Ainsi je pourrais garder les

vez vous des idées autre? ou des remarques?

Merci de votre aide...