Bonjour,
Mon problème:
Je souhaite activer la feuille d'un classeur (classeur "source") différent de mon classeur "actif". Une routine sur ce classeur "source" lance un UserForm dès l'activation de la feuille qui m'intéresse qui "prompt" l'utilisateur, l'obligeant à fermer cet UserForm avant que mon code ne continue son exécution.
Je souhaiterais faire en sorte que l'utilisateur n'ait pas à fermer cet Userform et que le code s'exécute de bout en bout sans interruption. Par ailleurs, il m'est impossible d'agir sur le classeur source, tout doit être gérer sur le classeur "actif".
Le code:
Classeur "actif", feuille "active":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub Bouton_Click() Dim wb As Workbook Dim passway As String If XXX.Value = True Then passway = "XXXX/XXXX/XXX.xls" End If Set wb = Application.Workbooks.Open(passway) Application.Sheets("YYYYY").Select 'Sur cette feuille, l'UserForm est activé. 'suite du code End Sub
Classeur "source", feuille "source":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Global continuer As Integer Private Sub Worksheet_Activate() ' If continuer = 0 Then Question.Show 'Question est l'UserForm qui prompt l'utilisateur avec deux boutons "oui" "non". 'suite du code End Sub
J'ai essayé toutes les combinaisons pour intégrer "Question.Hide" ou "continuer=1" sur la ligne Application.Sheets("YYYYY").Select, en prenant soin de déclarer toutes variables en global mais sans succès. J'ai aussi essayer les déclaration Const et Static. Mon gros problème est l'impossibilité de modifier quoi que ce soit sur le classeur "source".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub CommandButton2_Click() 'Bouton "non" Question.Hide 'il s'agit de l'action que je voudrais intégrer au classeur "actif". End Sub
Je serais très reconnaissant pour toute solution ou toute piste pouvant résoudre ce problème.
Merci d'avance!
Thomas
Partager