OVH Cloud OVH Cloud

Fonction vba

3 réponses
Avatar
Mario Limoges
Bonjour à tous (office 2002)

J'ai plusieurs fonctions intégrés dans le code VBA d'un workbook. Tout
fonctionne très bien (un peu grâce à vos suggestion)

Mon problème sur lequel je cherche une solution efficace est qu'a la
fermeture du chiffrier dans le Private Sub Workbook_BeforeClose(Cancel As
Boolean), je fais appel, entre autre à une fonction qui a pour but
d'inscrire certain détails (ID de l'utilisateur, date et heure ...) sur une
feuille cachée (sans l'ouvir) ce qui appel automatiquement Private Sub
Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range). Cette
procédure est utilisée ailleur lors de manipulations sur les feuilles
visible mais devient completement supperflu voir mème cause de bug de
procédure si les changements sont appliqués sur ma feuille cachée.

J'ai pensé à valider la provenance de l'appel mais je ne trouve pas comment
faire,

espérant avoir été suffisament claire, merci à l'avance

Mario

3 réponses

Avatar
Rai
Bonjour à tous (office 2002)

J'ai plusieurs fonctions intégrés dans le code VBA d'un workbook. Tout
fonctionne très bien (un peu grâce à vos suggestion)

Mon problème sur lequel je cherche une solution efficace est qu'a la
fermeture du chiffrier dans le Private Sub Workbook_BeforeClose(Cancel As
Boolean), je fais appel, entre autre à une fonction qui a pour but
d'inscrire certain détails (ID de l'utilisateur, date et heure ...) sur une
feuille cachée (sans l'ouvir) ce qui appel automatiquement Private Sub
Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range). Cette
procédure est utilisée ailleur lors de manipulations sur les feuilles
visible mais devient completement supperflu voir mème cause de bug de
procédure si les changements sont appliqués sur ma feuille cachée.

J'ai pensé à valider la provenance de l'appel mais je ne trouve pas comment
faire,

espérant avoir été suffisament claire, merci à l'avance

Mario


Bonjour,


Normalement, il te suffit de désactiver la gestion des évennements AVANT
d'inscrire des choses sur ta feuille, et de les réactiver après.

'Pour désactiver les evennements :
Application.EnableEvents = False
'--> ici tu gères tes inscriptions
'Pour les réactiver :
Application.EnableEvents = True


Autrement, pour détecter la provenance du changement :

Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If sh.Name="MaFeuillecachée" then Exit Sub


Bonne soirée

Rai

Avatar
Ardus Petus
Bonsoir, Mario,

Encadre ton code par
Application.enableEvents = False
Application.enableEvents = True

Cela évitera un appel à Workbook_SheetChange

Cordialement,
--
AP

"Mario Limoges" a écrit dans le message de
news: QJAlg.5341$
Bonjour à tous (office 2002)

J'ai plusieurs fonctions intégrés dans le code VBA d'un workbook. Tout
fonctionne très bien (un peu grâce à vos suggestion)

Mon problème sur lequel je cherche une solution efficace est qu'a la
fermeture du chiffrier dans le Private Sub Workbook_BeforeClose(Cancel As
Boolean), je fais appel, entre autre à une fonction qui a pour but
d'inscrire certain détails (ID de l'utilisateur, date et heure ...) sur
une feuille cachée (sans l'ouvir) ce qui appel automatiquement Private Sub
Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range). Cette
procédure est utilisée ailleur lors de manipulations sur les feuilles
visible mais devient completement supperflu voir mème cause de bug de
procédure si les changements sont appliqués sur ma feuille cachée.

J'ai pensé à valider la provenance de l'appel mais je ne trouve pas
comment faire,

espérant avoir été suffisament claire, merci à l'avance

Mario



Avatar
Mario Limoges
Un tres gros merci, c est exactement de que je cherchais

"Ardus Petus" a écrit dans le message de news:
%
Bonsoir, Mario,

Encadre ton code par
Application.enableEvents = False
Application.enableEvents = True

Cela évitera un appel à Workbook_SheetChange

Cordialement,
--
AP

"Mario Limoges" a écrit dans le message de
news: QJAlg.5341$
Bonjour à tous (office 2002)

J'ai plusieurs fonctions intégrés dans le code VBA d'un workbook. Tout
fonctionne très bien (un peu grâce à vos suggestion)

Mon problème sur lequel je cherche une solution efficace est qu'a la
fermeture du chiffrier dans le Private Sub Workbook_BeforeClose(Cancel As
Boolean), je fais appel, entre autre à une fonction qui a pour but
d'inscrire certain détails (ID de l'utilisateur, date et heure ...) sur
une feuille cachée (sans l'ouvir) ce qui appel automatiquement Private
Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range).
Cette procédure est utilisée ailleur lors de manipulations sur les
feuilles visible mais devient completement supperflu voir mème cause de
bug de procédure si les changements sont appliqués sur ma feuille cachée.

J'ai pensé à valider la provenance de l'appel mais je ne trouve pas
comment faire,

espérant avoir été suffisament claire, merci à l'avance

Mario