ThisWorkbook (Workbook_Open)

Bonjour,

J'ai un petit problème de compréhension. J'ai plusieurs classeurs ouvert sur lesquels je travaille. Un en particulier une macro dans "ThisWorkbook qui débute par "Private sub Workbook_Open() et contient du code qui vérifie des dates sur la feuille. Lorsque le classeur et fermer et que je l'ouvre cette macro fonctionne bien ou si j'exécute le code manuellement.

Mon problème est que lorsque le classeur est ouvert et que je travaille sur un autre classeur et que je reviens sur celui-ci le code dans "ThisWorkbook" ne s'exécute pas. Pourquoi ne démarre-t-il pas lorsque le classeur est actif?

J'ai essayé avec Workbook_Activate() mais cela ne fonctionne pas. Je croyais qu'en cliquant sur ce classeur il devenait actif et démarrerai le code. Probablement que ma ligne de pensée n'est pas juste et je ne vois pas comment régler mon problème suite à une vérification sur le Web.

Merci,

Bonjour

Ce serait mieux de voir votre code Workbook Open mais déjà avez-vous essayé avec ce code

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
'ici --> vos lignes de code qui se trouvent dans thisworkbook
End Sub

Cordialement

Bonjour,

J'ai essayé votre suggestion, Dan, mais malheureusement ça n'a pas fonctionné. Voici ce que contient "ThisWorkbook"

Option Explicit

Private Sub Workbook_Open()

Dim ProchainMois As Date
ProchainMois = Feuil1.[B2].Value
'MsgBox (ProchainMois)
ProchainMois = DateSerial(Year(ProchainMois), Month(ProchainMois) + 1, 1)
'MsgBox (ProchainMois)
If Date + 7 < ProchainMois Then Exit Sub
Feuil1.[B2].Value = ProchainMois
Call CopieDonnéesMois

End Sub

Cette partie vérifie si le mois à changé dans la cellule B2, si oui elle appelle la procédure "CopieDonnéesMois" qui change des données sur la feuille. Lorsque je travaille sur cette feuille (ajout de données) je désire que ce "Workbook_Open" vérifie si le mois à changer.

Je ne vois pas pourquoi cette section démarre seulement quand j'ouvre le classeur ou je l'active manuellement (F5).

Merci

Bonjour,

1. Je ne vois pas pourquoi cette section démarre seulement quand j'ouvre le classeur

Workbook_open ne fonctionne qu'à l'ouverture d'un fichier. Si vous voulez exécuter un code après ouverture vous devez ajouter d'autre code

2. Cette partie vérifie si le mois à changé dans la cellule B2, si oui elle appelle la procédure "CopieDonnéesMois" qui change des données sur la feuille. Lorsque je travaille sur cette feuille (ajout de données) je désire que ce "Workbook_Open" vérifie si le mois à changer

Ce n'est pas la même chose que votre demande initiale cela. D'un coté vous écrivez que le souci vient lorsque vous travaillez dans un autre classeur et que vous revenez sur celui contenant le code Open et dans votre dernier post vous écrivez que vous voulez que le code s'exécute lorsque vous travaillez sur la feuille "Ajout de données".

Dans l'attente de votre retour d'info. Un petit fichier modèle avec explications serait intéressant

Bonjour,

Je m'excuse Dan si je n'ai répondu plus tôt, mais je crois que j'ai trouvé une solution à mon problème. Au lieu d'utiliser "Workbook_Open" dans "ThisWorkbook" j'ai essayé "Workbook_Activate" qui démarre la vérification chaque fois que je reviens sur ce classeur.

Merci de votre aide, cela ma aidé à trouver une solution.

Merci encore

Bonjour,

Pas de soucis pour votre réponse tardive.
Oui la solution que vous avez trouvée est une solution qui fonctionne aussi.
Une chose à faire c'est placer vos lignes de code dans un module puis vous faites appel à cette macro depuis Thisworkbook. Cela vous évitera d'avoir deux fois les mêmes lignes de code.

Cordialement

Rechercher des sujets similaires à "thisworkbook workbook open"