Utilisation des événements d'une feuille Excel dans une application l'ayant géné

Signaler
Messages postés
63
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
25 juin 2013
-
Messages postés
63
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
25 juin 2013
-
Bonjour à tous,

J'ai un problème que je n'arrive pas à résoudre.

Soit une application Excel VBA qui génére un rapport dans un nouveau classeur.

Je souhaite récupérer les événements dans la feuille du classeur pour éviter des erreurs de la part de l'utilisateur.
Pour cela dans le code VBA de la feuille, j'ai placé la macro suivante.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Run "'applis service offres.xla'!DépartModifPipeline", Target.Row, Target.Column
End Sub
qui me permet de lancer une procédure dans mon application. Je récupère bien l'information de ligne et de colonne de la cellule en cours dans mon application, mais toutes les variables de mon application ne sont pas accessibles.
Message d'erreur "Membre de méthode ou de données introuvable"

Je pourrai mettre plus de code sur la feuille du classeur du rapport, mais comme ce serait une copie de certaines procédures de mon application, cela me posera à terme des problème de maintenance.

Quelqu'un a t'il une idée (j'ai confiance) ?

Rappel du problème : Pouvoir utiliser, à partir des événements provenant un nouveau classeur généré par une application VBA, des procédures et des variables de cette même application.

J'espère que mes explications sont assez claires. Sinon faites-moi part de vos remarques.

Merci d'avance
RLAPT

2 réponses


Bonjour,

Rien de plus normal que les variables d'un classeur ne puissent être accédées directement d'un autre classeur.

Pour autant que je me souvienne, rien n'interdit de mettre des procédures de gestion des erreurs dans un module de feuille. Un module de feuille ou un module de classeur, c'est un module ordinaire qui a certaines fonctions particulières, mais rien n'empêche d'utiliser On error go to dans un module de feuille.

Sinon, si tu as vraiment besoin d'informations comme certaines valeurs ou "l'état" du classeur à ce moment-là, il a probablement moyen de s'en tirer quand même. En vrac et sans trop réfléchir:

1) Enregistrer les valeurs du "classeur fautif" dans le registre avec savesettings. (Dans un emplacement du registre pré-déterminé par Microsoft) ou carrément par l'API Windows. (Plus de choix de destination). Les valeurs peuvent ensuite être récupérées respectivement par Getsettings et par L'API Windows.

2)Enregistrer les données dans un banal fichier texte et les relire dans le classeur principal

3) Au lieu de prendre un fichier texte, créer une nouvelle feuille dans le "classeur fautif", y mettre les informations et copier ou carrément transférer la feuille dans le classeur principal

Mais, si tes "problèmes de maintenance" qui te hantent consistent juste à devoir modifier beaucoup de macros de beaucoup de classeurs; cela peut aussi se faire par macros.

Des exemples au bout de ce lien
Messages postés
63
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
25 juin 2013

Bonsoir,

Merci de votre réponse.

En fait je pense que le lien placé dans ma demande permet de résoudre la difficuté.

En effet un des exemples montre comment ajouter par programme une référence.

Normalement je devrai avoir accès aux procédures et aux variables.

J'essayerai demain et je vous tiendrai au courant.

Merci de votre aide.