perso.xls : macro active une seule fois seulement par workbook.

Le
Baton Rouge
Bonjour

J'ai une macro dans "perso.xls" qui via une classe se charge de faire
un boulot quand un fichier "classeur1.xls" est ouvert (et uniquement
ce fichier). Tout fonctionne bien sauf que si je ferme le classeur et
que je l'ouvre a nouveau, ma macro dans "perso.xls" n'est plus appelé.
Il faut que je ferme excel et que je l'ouvre a nouveau.

J'ai placé des breakpoint (et msgbox) et aucun n'est activé lors de la
2ieme ouverture.

J'ai donc tester avec d'autre nom de fichiers et à chaque fois la
premeire fois ça fonctionne mais pas la 2ieme. Exemple

1) "classeur1.xls" -> marche
2) "classeur2.xls" -> marche
3) "classeur1.xls" -> marche pas
4) "classeur3.xls" -> marche
5) "classeur2.xls" -> marche pas

J'ai malheureusement pas le xls sur moi mais je me suis basé sur :
http://www.generation-nt.com/reponses/evenements-entraide-1251351.html?page=2#6709981
Reponse n° 7 de PMO


Si quelqu'un à une idée ou une solution ?

merci de votre aide.





--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Baton Rouge
Le #22805021
On Mon, 15 Nov 2010 21:02:33 +0100, Baton Rouge wrote:

Bonjour

J'ai une macro dans "perso.xls" qui via une classe se charge de faire
un boulot quand un fichier "classeur1.xls" est ouvert (et uniquement
ce fichier). Tout fonctionne bien sauf que si je ferme le classeur et
que je l'ouvre a nouveau, ma macro dans "perso.xls" n'est plus appelé.
Il faut que je ferme excel et que je l'ouvre a nouveau.

J'ai placé des breakpoint (et msgbox) et aucun n'est activé lors de la
2ieme ouverture.

J'ai donc tester avec d'autre nom de fichiers et à chaque fois la
premeire fois ça fonctionne mais pas la 2ieme. Exemple

1) "classeur1.xls" -> marche
2) "classeur2.xls" -> marche
3) "classeur1.xls" -> marche pas
4) "classeur3.xls" -> marche
5) "classeur2.xls" -> marche pas

J'ai malheureusement pas le xls sur moi mais je me suis basé sur :
http://www.generation-nt.com/reponses/evenements-entraide-1251351.html?page=2#6709981
Reponse n° 7 de PMO


Si quelqu'un à une idée ou une solution ?

merci de votre aide.



Petit up
snif ;o((
--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
LSteph
Le #22817361
Non, non, , lui dès qu'il esrt arrivé il tenu sa promesse gagner plus, c'est
ce qu'il a fait
nous on avait plus qu'à tenir le reste , travailler.

"Baton Rouge" news:
On Mon, 15 Nov 2010 21:02:33 +0100, Baton Rouge wrote:

Bonjour

J'ai une macro dans "perso.xls" qui via une classe se charge de faire
un boulot quand un fichier "classeur1.xls" est ouvert (et uniquement
ce fichier). Tout fonctionne bien sauf que si je ferme le classeur et
que je l'ouvre a nouveau, ma macro dans "perso.xls" n'est plus appelé.
Il faut que je ferme excel et que je l'ouvre a nouveau.

J'ai placé des breakpoint (et msgbox) et aucun n'est activé lors de la
2ieme ouverture.

J'ai donc tester avec d'autre nom de fichiers et à chaque fois la
premeire fois ça fonctionne mais pas la 2ieme. Exemple

1) "classeur1.xls" -> marche
2) "classeur2.xls" -> marche
3) "classeur1.xls" -> marche pas
4) "classeur3.xls" -> marche
5) "classeur2.xls" -> marche pas

J'ai malheureusement pas le xls sur moi mais je me suis basé sur :
http://www.generation-nt.com/reponses/evenements-entraide-1251351.html?page=2#6709981
Reponse n° 7 de PMO


Si quelqu'un à une idée ou une solution ?

merci de votre aide.



Petit up
snif ;o((
--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire
un malaise vagal et creuser le trou de la sécu ?

Baton Rouge
Le #22820521
On Sat, 20 Nov 2010 15:46:02 +0100, "LSteph" wrote:

Non, non, , lui dès qu'il esrt arrivé il tenu sa promesse gagner plus, c'est
ce qu'il a fait
nous on avait plus qu'à tenir le reste , travailler.



J'aimerai bien bosser plus, mais je reste bloqué sur la macro qui
n'estexecuté qu'une seule fois par session excel.
Donc si toi, sarko ou un autre avez une solution, je serai beaucoup
plus productif.

Merci d'avance.


--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
michdenis
Le #22828431
Bonjour,

Voici un fichier exemple quant à la façon de créer une classe
Objet "application" : http://cjoint.com/?0lwoDz8t577

Regarde dans le ThisWorkbook, Module1, Module de classe.

Dans le module de la classe "AppExcel", tu peux choisir l'évènement
que tu désires pour exécuter du code que tu veux.

Il faut cependant conserver à l'esprit que la commande "End" met fin à
la procédure en cours et qu'elles réinitialisent toutes les variables à 0 pour les
types integer, long, double... et à "" pour le type String et enfin à "Nothing"
pour les variables objets.
En conséquence, si tu utilises cette commande dans ton classeur Perso.xls, tu
supprimes l'existence de l'instance de la classe objet Application. Résultat les
procédures évènementielles ne sont plus déclenchées.

Le phénomène est similaire si tu ajoutes ou si tu supprimes une procédure et
ou nouvelle fonction personnalisée à ton classeur "Perso". Il est en de même si le
classeur passe en mode création soit en utilisant la commande à cet effet ou en
voulant ajouter un "Contrôle" émanant de la boîte à outils "Contrôle".

Comme tu utilises ton classeur Perso.xls pour lancer la classe "Objet Application"
cela peut-être gênant, car c'est le propre d'un classeur "Perso.xls" que de vouloir
ajouter de nouvelles macros à ce dernier. L'alternative serait l'utilisation d'un
classeur de macros complémentaires s'ouvrant à l'ouverture d'Excel.


MichD
--------------------------------------------
"Baton Rouge" a écrit dans le message de groupe de discussion :

Bonjour

J'ai une macro dans "perso.xls" qui via une classe se charge de faire
un boulot quand un fichier "classeur1.xls" est ouvert (et uniquement
ce fichier). Tout fonctionne bien sauf que si je ferme le classeur et
que je l'ouvre a nouveau, ma macro dans "perso.xls" n'est plus appelé.
Il faut que je ferme excel et que je l'ouvre a nouveau.

J'ai placé des breakpoint (et msgbox) et aucun n'est activé lors de la
2ieme ouverture.

J'ai donc tester avec d'autre nom de fichiers et à chaque fois la
premeire fois ça fonctionne mais pas la 2ieme. Exemple

1) "classeur1.xls" -> marche
2) "classeur2.xls" -> marche
3) "classeur1.xls" -> marche pas
4) "classeur3.xls" -> marche
5) "classeur2.xls" -> marche pas

J'ai malheureusement pas le xls sur moi mais je me suis basé sur :
http://www.generation-nt.com/reponses/evenements-entraide-1251351.html?page=2#6709981
Reponse n° 7 de PMO


Si quelqu'un à une idée ou une solution ?

merci de votre aide.





--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu
?
Baton Rouge
Le #22834731
On Mon, 22 Nov 2010 08:50:22 -0500, "michdenis"

L'alternative serait l'utilisation d'un
classeur de macros complémentaires s'ouvrant à l'ouverture d'Excel.



Je viens de me servir de ton exemple de la piece jointe et c'est
exactement ce que je cherche à obtenir alors que dans perso.xls
j'avais le même principe mais qui ne marchais qu'une fois.

J'utilise deja le classeur complementaire :
perso.xls (chaque session le sien) qui pointe vers une macro start
dans macros.xls (le même pour tout le monde) ça m'evite de modifier
tous les perso.xls
macros.xls a des macros qui vont s'executer ou non en fonction du type
de classeur que la personne va ouvrir.

Bon, je vais devoir refondre une partie de mon perso.xls et macros.xls

Merci de ton aide.







--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Publicité
Poster une réponse
Anonyme