OVH Cloud OVH Cloud

fermeture d'un nouveau classeur

9 réponses
Avatar
mike2050
Bonjour,

dans une macro, j'utilise un getopen filname qui me permet d'ouvrir
n'importe quel classeur...
je voudrais pouvoir utiliser la procédure workbook_beforeclose avec ce
nouveau classeur qui est toujours différent (J'ai, en fait, un petit millier
de classeur et je ne veux pas mettre de macro dans chaque classeur!!)

Le besoin de base étant d'ouvrir une userform quand je ferme un classeur que
j'ai ouvert avec un getopen filename.

merci à tous

9 réponses

Avatar
Philippe
Un contournement :

1) rendre impossible à l'utilisateur de fermer de son propre chef le
classeur ouvert
et
2) placer ta procédure avant celle que tu utilises pour fermer le classseur

Cordialement,
Philippe



Bonjour,

dans une macro, j'utilise un getopen filname qui me permet d'ouvrir
n'importe quel classeur...
je voudrais pouvoir utiliser la procédure workbook_beforeclose avec ce
nouveau classeur qui est toujours différent (J'ai, en fait, un petit millier
de classeur et je ne veux pas mettre de macro dans chaque classeur!!)

Le besoin de base étant d'ouvrir une userform quand je ferme un classeur que
j'ai ouvert avec un getopen filename.

merci à tous


Avatar
mike2050
Bonjour Philippe,

Malheureusement, je crains que ce que tu me dis ne répond pas vraiment à ma
question... En fait si je fais comme tu dis, ma userform apparaîtra à
l'ouverture du classeur!!!
Ce que je veux, c'est que l'utilisateur ouvre le classeur, remplisse ce
qu'il a à remplir, clique sur le bouton de fermeture ( [X] ) et le fait de
cliquer sur ce bouton fait apparaître une userform.

C'est en fait la description de la procédure WorkBook_BeforeClose mais je
n'arrive pas à l'utiliser!




Un contournement :

1) rendre impossible à l'utilisateur de fermer de son propre chef le
classeur ouvert
et
2) placer ta procédure avant celle que tu utilises pour fermer le classseur

Cordialement,
Philippe



Bonjour,

dans une macro, j'utilise un getopen filname qui me permet d'ouvrir
n'importe quel classeur...
je voudrais pouvoir utiliser la procédure workbook_beforeclose avec ce
nouveau classeur qui est toujours différent (J'ai, en fait, un petit millier
de classeur et je ne veux pas mettre de macro dans chaque classeur!!)

Le besoin de base étant d'ouvrir une userform quand je ferme un classeur que
j'ai ouvert avec un getopen filename.

merci à tous




Avatar
Philippe
Je pense que par définition, workbook_beforeClose ne peut être utilisée que
sur le classeur où se trouve écrite la macro.

Je ne vois pas d'autre solution à ton problème.


Si tu trouves une autre solution, je serai heureux de la lire.
Cordialement,
Philippe


Bonjour Philippe,

Malheureusement, je crains que ce que tu me dis ne répond pas vraiment à ma
question... En fait si je fais comme tu dis, ma userform apparaîtra à
l'ouverture du classeur!!!
Ce que je veux, c'est que l'utilisateur ouvre le classeur, remplisse ce
qu'il a à remplir, clique sur le bouton de fermeture ( [X] ) et le fait de
cliquer sur ce bouton fait apparaître une userform.

C'est en fait la description de la procédure WorkBook_BeforeClose mais je
n'arrive pas à l'utiliser!




Un contournement :

1) rendre impossible à l'utilisateur de fermer de son propre chef le
classeur ouvert
et
2) placer ta procédure avant celle que tu utilises pour fermer le classseur

Cordialement,
Philippe



Bonjour,

dans une macro, j'utilise un getopen filname qui me permet d'ouvrir
n'importe quel classeur...
je voudrais pouvoir utiliser la procédure workbook_beforeclose avec ce
nouveau classeur qui est toujours différent (J'ai, en fait, un petit millier
de classeur et je ne veux pas mettre de macro dans chaque classeur!!)

Le besoin de base étant d'ouvrir une userform quand je ferme un classeur que
j'ai ouvert avec un getopen filename.

merci à tous






Avatar
Alain CROS
Bonjour,

Exemple ici
http://cjoint.com/?chofyDHMTd

Alain CROS

"mike2050" a écrit dans le message de news:

| Bonjour,
|
| dans une macro, j'utilise un getopen filname qui me permet d'ouvrir
| n'importe quel classeur...
| je voudrais pouvoir utiliser la procédure workbook_beforeclose avec ce
| nouveau classeur qui est toujours différent (J'ai, en fait, un petit millier
| de classeur et je ne veux pas mettre de macro dans chaque classeur!!)
|
| Le besoin de base étant d'ouvrir une userform quand je ferme un classeur que
| j'ai ouvert avec un getopen filename.
|
| merci à tous
Avatar
mike2050
Bonjour Alain,
et pour commencer, merci!
Malheureusement, la méthode Keywords de l'objet _Workbook n'est pas toujours
valable... Elle échoue de temps en temps. D'ailleurs, elle échoue sur les
classeurs que je dois ouvrir (dont l'affectation du nom est régi par une
macro) parce que sur un classeur normal, tout va bien! Et biensûr l'aide VBA
ne donne rien sur ce type de commande!
Du coup, je ne sais pas comment utiliser ce "Keywords" qui visiblement est
la solution à mon problème!


Bonjour,

Exemple ici
http://cjoint.com/?chofyDHMTd

Alain CROS

"mike2050" a écrit dans le message de news:

| Bonjour,
|
| dans une macro, j'utilise un getopen filname qui me permet d'ouvrir
| n'importe quel classeur...
| je voudrais pouvoir utiliser la procédure workbook_beforeclose avec ce
| nouveau classeur qui est toujours différent (J'ai, en fait, un petit millier
| de classeur et je ne veux pas mettre de macro dans chaque classeur!!)
|
| Le besoin de base étant d'ouvrir une userform quand je ferme un classeur que
| j'ai ouvert avec un getopen filename.
|
| merci à tous





Avatar
Alain CROS
Bonjour,

J'ai utilisé Keywords parce que c'est une variable déjà existante équivalente à ThisWorkbook.BuiltinDocumentProperties(4).
Fichier Propriétés Résumé Mots clés.
Il est possible d'utiliser une propriété personnalisée
ThisWorkbook.CustomDocumentProperties.Add "Test", False, msoPropertyTypeString, "OK"

Dans Ouvre(), remplacer :
WB.Keywords = "OK"
par :
WB.CustomDocumentProperties.Add "Test", False, msoPropertyTypeString, "OK"
WB.Saved = True 'pour éviter voulez vous sauvegarder

Pour l'echec, je ne sais pas, il faudrait en dire plus.

Alain CROS


"mike2050" a écrit dans le message de news:

| Bonjour Alain,
| et pour commencer, merci!
| Malheureusement, la méthode Keywords de l'objet _Workbook n'est pas toujours
| valable... Elle échoue de temps en temps. D'ailleurs, elle échoue sur les
| classeurs que je dois ouvrir (dont l'affectation du nom est régi par une
| macro) parce que sur un classeur normal, tout va bien! Et biensûr l'aide VBA
| ne donne rien sur ce type de commande!
| Du coup, je ne sais pas comment utiliser ce "Keywords" qui visiblement est
| la solution à mon problème!
|
|
| > Bonjour,
| >
| > Exemple ici
| > http://cjoint.com/?chofyDHMTd
| >
| > Alain CROS
| >
| > "mike2050" a écrit dans le message de news:
| >
| > | Bonjour,
| > |
| > | dans une macro, j'utilise un getopen filname qui me permet d'ouvrir
| > | n'importe quel classeur...
| > | je voudrais pouvoir utiliser la procédure workbook_beforeclose avec ce
| > | nouveau classeur qui est toujours différent (J'ai, en fait, un petit millier
| > | de classeur et je ne veux pas mettre de macro dans chaque classeur!!)
| > |
| > | Le besoin de base étant d'ouvrir une userform quand je ferme un classeur que
| > | j'ai ouvert avec un getopen filename.
| > |
| > | merci à tous
| >
| >
| >
Avatar
mike2050
Bonjour Alain,

malgré la nouvelle expression que tu m'as donné, ça ne fonctionne toujours
pas... (il n'y a plus de messages d'erreur et je ne sais donc plus où ça
bug!) la userform n'apparaît pas à la fermeture du classeur
je veux bien t'en dire plus, mais de quoi as-tu besoin?
en tout cas, merci de ton aide
à bientôt



Bonjour,

J'ai utilisé Keywords parce que c'est une variable déjà existante équivalente à ThisWorkbook.BuiltinDocumentProperties(4).
Fichier Propriétés Résumé Mots clés.
Il est possible d'utiliser une propriété personnalisée
ThisWorkbook.CustomDocumentProperties.Add "Test", False, msoPropertyTypeString, "OK"

Dans Ouvre(), remplacer :
WB.Keywords = "OK"
par :
WB.CustomDocumentProperties.Add "Test", False, msoPropertyTypeString, "OK"
WB.Saved = True 'pour éviter voulez vous sauvegarder

Pour l'echec, je ne sais pas, il faudrait en dire plus.

Alain CROS


"mike2050" a écrit dans le message de news:

| Bonjour Alain,
| et pour commencer, merci!
| Malheureusement, la méthode Keywords de l'objet _Workbook n'est pas toujours
| valable... Elle échoue de temps en temps. D'ailleurs, elle échoue sur les
| classeurs que je dois ouvrir (dont l'affectation du nom est régi par une
| macro) parce que sur un classeur normal, tout va bien! Et biensûr l'aide VBA
| ne donne rien sur ce type de commande!
| Du coup, je ne sais pas comment utiliser ce "Keywords" qui visiblement est
| la solution à mon problème!
|
|
| > Bonjour,
| >
| > Exemple ici
| > http://cjoint.com/?chofyDHMTd
| >
| > Alain CROS
| >
| > "mike2050" a écrit dans le message de news:
| >
| > | Bonjour,
| > |
| > | dans une macro, j'utilise un getopen filname qui me permet d'ouvrir
| > | n'importe quel classeur...
| > | je voudrais pouvoir utiliser la procédure workbook_beforeclose avec ce
| > | nouveau classeur qui est toujours différent (J'ai, en fait, un petit millier
| > | de classeur et je ne veux pas mettre de macro dans chaque classeur!!)
| > |
| > | Le besoin de base étant d'ouvrir une userform quand je ferme un classeur que
| > | j'ai ouvert avec un getopen filename.
| > |
| > | merci à tous
| >
| >
| >





Avatar
Alain CROS
Bonjour,

Un petit exemple du classeur principal et d'un fichier à ouvrir sur :
http://cjoint.com/
en fournissant le lien créé ici.

Alain CROS

"mike2050" a écrit dans le message de news:

| Bonjour Alain,
|
| malgré la nouvelle expression que tu m'as donné, ça ne fonctionne toujours
| pas... (il n'y a plus de messages d'erreur et je ne sais donc plus où ça
| bug!) la userform n'apparaît pas à la fermeture du classeur
| je veux bien t'en dire plus, mais de quoi as-tu besoin?
| en tout cas, merci de ton aide
| à bientôt
|
Avatar
mike2050
Re, je ne vais pas pouvoir utiliser Cjoint car même dépecé, mon fichier est
trop volumineux...
je peux par contre te les envoyer par mail... Est-ce que si je t'envoie tout
ça à l'adresse qui est indiquée dans ton profil, ça fonctionnera?
j'imagine en plus que tu préfères avoir le classeur qui génère le nom des
classeurs qui ne fonctionnent pas et un classeur qui ne fonctionne pas???
puisque mon classeur principal contiendra la macro que tu possèdes déjà!



Bonjour,

Un petit exemple du classeur principal et d'un fichier à ouvrir sur :
http://cjoint.com/
en fournissant le lien créé ici.

Alain CROS

"mike2050" a écrit dans le message de news:

| Bonjour Alain,
|
| malgré la nouvelle expression que tu m'as donné, ça ne fonctionne toujours
| pas... (il n'y a plus de messages d'erreur et je ne sais donc plus où ça
| bug!) la userform n'apparaît pas à la fermeture du classeur
| je veux bien t'en dire plus, mais de quoi as-tu besoin?
| en tout cas, merci de ton aide
| à bientôt
|