USF doit apparaitre et disparaitre workbook_windowactivate

bolish

XLDnaute Nouveau
Bonjour à tous,

Voilà mon soucis :

Un classeur principal "1" par lequel j'ouvre un second classeur "2" avec la macro suivante (execution par bouton dans une userform).
Je souhaite que mon userform disparaisse à l'ouverture du fichier "2" et reaparaisse dès l'activation du fichier "1".

Ce que j'ai fait :

commandbutton1_click()

Dim z As String
Dim y As String
'y = nom du fichier.xls
'z = Chemin entier du fichier.xls
y = Sheets("page de garde").Range("H46").Value
z = Sheets("page de garde").Range("H45").Value
'en fait je colle un "1" dans une cellule car je voudrais que le userform reaparaisse seulement dans le cas de cette macro (vous verrez à quoi sa sert dans la macro qui suit...)
Sheets("page de garde").Range("H48").Value = 1
On Error GoTo h
Workbooks.Open z
ActiveWorkbook.ChangeFileAccess xlReadOnly
Exit Sub
h:
MsgBox "Cette option est disponible seulement pour les capabilités effectuées après Janvier 2008."
End sub

+

Private Sub Workbook_windowActivate(ByVal Wn As Window)
If Sheets("page de garde").Range("H48").Value = 1 Then
UserForm1.Show
Sheets("page de garde").Range("H48").Value = ""
Else: End If
End Sub

+

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
UserForm1.Hide
End Sub

Mon problème :

j'ouvre mon fichier "2", je le vois s'ouvrir car mon userform disparait 0,0005s.
mais mon userform (qui est en fullscreen) réaparait dans la foulée et je ne peux donc pas visualiser le document "2" ouvert.

Ca fonctionne une fois sur 2. je sais pas pourquoi....

Et quand ca fonctionne, le userform ne réapparait pas dès l'activation du classeur "1"...

A n'y rien comprendre....

Je vous remercie par avance pour votre aide
 

Papou-net

XLDnaute Barbatruc
Re : USF doit apparaitre et disparaitre workbook_windowactivate

Bonsoir bolish,

Je ne suis pas certain de ma solution, mais pourquoi n'écris-tu pas plutot ton code ainsi ?

Code:
[COLOR="Red"]Private Sub Workbook_Activate()[/COLOR]
If Sheets("page de garde").Range("H48").Value = 1 Then
UserForm1.Show
Sheets("page de garde").Range("H48").Value = ""
Else: End If
End Sub

[COLOR="Red"]Private Sub Workbook_Deactivate()[/COLOR]
UserForm1.Hide
End Sub

Espérant t'avoir été utile.

Cordialement.
 

bolish

XLDnaute Nouveau
Re : USF doit apparaitre et disparaitre workbook_windowactivate

Parce que si j'enlève "(ByVal Wn As Window)" ca me donne le msg d'erreur suivant :

"
Erreur de compilation

La déclaration de la procédure ne correspond pas à la description de l'évènement ou de la procédure du même nom.
"

jes vraiment pas un expert VBA, donc j'avais trouvé le (ByVal Wn As Window) sur le net justement.

Merci pour ton aide en tout cas.

J'espère qu'on va réussir à trouver la soluce.........
 

bolish

XLDnaute Nouveau
Re : USF doit apparaitre et disparaitre workbook_windowactivate

Bon je suis sur d'avoir réussi à cerner le problème, pour moi il est le suivant :

Quand j'ouvre mon fichier "2", l'USF se hide bien grace au window_deactivate.
Mais cette **** de macro pour ouvrir le fichier réactive le fichier "1" juste après. Ce qui fait réapparaite l'USF conformément à ma demande window_activate alors que je lui ais rien demandé moi!!!

Je pense que excel revient sur le fichier "1" pour finir la macro d'ouverture.(alors qu'il ne reste plus que le end sub à faire....)
mais comment lui dire de ne pas le faire!!!!!????

A l'aide!!!
merci d'avance à tous!
 

Papou-net

XLDnaute Barbatruc
Re : USF doit apparaitre et disparaitre workbook_windowactivate

Bonjour bolish,

En l'absence de tes classeurs, pas facile de tout voir, mais tu peux essayer de masquer ton userform par l'activation de ton fichier n°2.

Ex :

Code:
Private Sub Workbook_Activate()
  Workbook(TonNomDeFichierN°1).UserForm1.Hide
End Sub

Espérant t'avoir aidé.

Cordialement.
 

Discussions similaires

Réponses
11
Affichages
287
Réponses
17
Affichages
334

Statistiques des forums

Discussions
312 206
Messages
2 086 208
Membres
103 158
dernier inscrit
laufin