Fermer et Ouvrir le Même fichier sans Souris

Fermer et Ouvrir le Même fichier sans Souris - VB/VBA/VBS - Programmation

Marsh Posté le 27-05-2016 à 15:36:13    

Bonjour,
 
Je ne sais pas comment faire pour fermer un fichier Excel, puis le rouvrir automatiquement, sans avoir de Pop-Up qui s'ouvre, cette fenêtre... :
http://image.noelshack.com/fichiers/2016/21/1464355520-message-d-erreur.png
 
Ou soit alors si je ne peux pas empêcher son apparition, donnez moi un moyen de la quitter sans utiliser de souris ou de clavier. J'ai essayé avec les fonctions Keys "{ENTER}", et ça ne marche pas non plus la fenêtre se ferme une fois sur 4 (c'est une proba, des fois elle se ferme et des fois elle s'affiche), je sais pas pourquoi.
 
Quand le fichier Excel s'ouvre

Code :
  1. Private Sub Workbook_Open()
  2. ''''''''
  3. Application.DisplayAlerts = False
  4. Application.ScreenUpdating = False
  5. UserForm1.Show
  6. End Sub


 
Dans le Userform

Code :
  1. Private Sub ComboBox1_Change()
  2. ''''''''
  3. Application.DisplayAlerts = False
  4. Application.ScreenUpdating = False
  5. CAD = ComboBox1.Value
  6. 'On Error Resume Next
  7. '''''''''''''''''''''''''''
  8. Dim plage As Range
  9. Dim Bonjour As String
  10. Set plage = ActiveSheet.Range("AG2:AG67" )
  11. Set ref = plage.Find(CAD, lookat:=xlWhole)
  12. If ref Is Nothing Then
  13.     Bonjour = CAD & " est inexistant dans " & plage.Address & " , notez la référence produit et avertissez le responsable des fiches. "
  14.     MsgBox Bonjour
  15. Unload Me
  16.     Application.OnTime Now + TimeValue("00:00:01" ), "OpenMe"
  17.     ThisWorkbook.Close False
  18. Else
  19. Bonjour = ref & " en " & ref.Address
  20. MsgBox Bonjour
  21. Range("T32" ) = CAD
  22. End If
  23. '''''''''''''''''''''''''''
  24. Workbooks.Open "D:\Users\...\Desktop\fichier Excel"
  25. Range("A1" ).Select
  26. Range("G37" ) = CAD
  27. End Sub
  28. '________________________________________________________________________________________________________
  29. Private Sub TextBox2_Change()
  30. On Error Resume Next
  31.     ActiveWindow.ScrollRow = 40
  32.     ActiveWindow.SmallScroll Down:=3
  33. End Sub
  34. '________________________________________________________________________________________________________
  35. Private Sub TextBox3_Change()
  36.     ActiveWindow.ScrollRow = 82
  37.     ActiveWindow.SmallScroll Down:=3
  38. End Sub
  39. '________________________________________________________________________________________________________
  40. Private Sub TextBox4_Change()
  41. ''''''''
  42. Application.DisplayAlerts = False
  43. Application.ScreenUpdating = False
  44. Unload Me
  45. ActiveWorkbook.Saved = True
  46. ActiveWorkbook.Close
  47.    Application.OnTime Now + TimeValue("00:00:01" ), "OpenMe"
  48.    ThisWorkbook.Close False
  49.    
  50. End Sub
  51. '________________________________________________________________________________________________________
  52. Sub OpenMe()
  53.    MsgBox "I'm Back!"
  54. End Sub
  55. '________________________________________________________________________________________________________
  56. Private Sub UserForm_Initialize()
  57. Dim plage As Range
  58. With Sheets("CAB" )
  59. Set plage = .Range("A1:A" & .Range("A" & Rows.Count).End(xlUp).Row)
  60. End With
  61. For Each c In plage
  62. If c.Value <> "" Then Me.ComboBox1.AddItem c.Value
  63. Next c
  64. End Sub


 
J'ai mis des "Application.DisplayAlerts = False ; Application.ScreenUpdating = False" partout et ça change rien, vous allez me dire "mais tu as pas mis les "Application.DisplayAlerts = True", j'ai essayé en les mettant à la fin de chaque macro et ça fait EXACTEMENT la même chose, cette fenêtre est toujours là.
 
Mon UserForm ne marchera plusieurs fois que si je ferme mon fichier, et je n'ai pas de souris ni de clavier pour fermer cette fenêtre.


Message édité par anonymworker le 27-05-2016 à 15:37:11
Reply

Marsh Posté le 27-05-2016 à 15:36:13   

Reply

Marsh Posté le 28-05-2016 à 10:11:21    

 
            Bonjour,
 
            C'est un message qui apparaitra toujours tant qu'il y aura cette grossière erreur
            vu qu'elle est déclenchée avant l'exécution de l'évènement Workbook_Open
 
            Qui plus est je ne vois pas l'intérêt de fermer un classeur pour le rouvrir dès la seconde suivante !  :??:  
 
            Vu que la procédure appelée n'a rien à voir avec un UserForm, la déplacer dans un module normal
            et telle quelle l'instruction OnTime se déroulera sans encombre !
            Si elle est déplacée dans un module de classe du classeur comme celui d'une feuille de calculs,
            ne pas oublier de préciser alors le nom de ce module …
            Mais cela ne peut fonctionner via un UserForm !
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed