[Résolu] VBA Echec workbook close

xvella

XLDnaute Occasionnel
Bonjour à tous,
Bonjour forum,

J'ai 2 fichier avec Userform en execution workbook open.
Menu et Prog.
Quand je suis dans Menu, je clic pour ouvrir Prog et fermer Menu.
Quand je suis dans Prog, je clic pour ouvrir Menu et fermer Prog.
Pour l'ouverture cela est sans problème.
Mais je galère pour la fermerture.
(Plusieur essai infurtueux voir plantage d'excel)

Merci d'avance pour vos réponces.
Bon journée à tous.
 

Pièces jointes

  • Menu.xlsm
    17.8 KB · Affichages: 21
  • Prog.xlsm
    17.1 KB · Affichages: 17

xvella

XLDnaute Occasionnel
Merci vgnedron de me répondre mais le problème c'est que l'ouverture des userform est important.
Car ceci empèche tous accès au feuille en arrière plan avec la déssactivation de la croix.
Code de déssactivation:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = True
End Sub
Les feuilles sont ainsi toujours proteger de toute mauvaise action.

Encore Merci et A+
 

xvella

XLDnaute Occasionnel
Sinon l'objectif est bien la.
Quand je suis dans Menu, je clic pour ouvrir Prog et fermer Menu mais problème de lancement Userform.
Quand je suis dans Prog, je clic pour ouvrir Menu et fermer Prog mais problème de lancement Userform.
Le problème n'est plus le même c tous.
 

vgendron

XLDnaute Barbatruc
dans ce cas.
à l'ouverture de tes fichiers, fais un test pour savoir si l"autre fichier est ouvert. pour le fermer le cas échéant..
à tester...
sinon.. ca me semble bancal est pas très orthodoxe...
à partir du fichier 1 , le code VBA de 1 ouvre le fichier 2...
SANS que le code 1 soit terminé, le code du fichier 2 se lance et vient fermer le fichier 1.....
pas sur qu'excel aime beaucoup...et attention à l'intégrité de tes datas... à voir
 

Pièces jointes

  • Prog.xlsm
    18.6 KB · Affichages: 20
  • Menu.xlsm
    19.8 KB · Affichages: 17

xvella

XLDnaute Occasionnel
Même résultat sa ouvre bien le fichier puis ferme l'autre mais plus de lancement de Userform.

Je te r'assure sa fait 2 bon mois que je me casse les dents et je tourne en rond sur le même souci.

j'arrive a ouvrir - fermer et pas de lancement
ou ouvrir lancer mais plus fermer
avec plusieur fois plantage d'excel dans une boucle ou autre
j'ai même penser essayer de fermer via le userform mais la j'ai pas du tout réussi.

Merci beaucoup à toi.
 

vgendron

XLDnaute Barbatruc
à quoi sert ton userform?
celui que je vois ne sert qu'à ouvrir l'autre fichier..
visiblement, tu n'as pas mis tout le code associé
comme je te le disais.. un code ne peut pas fermer le fichier auquel il est associé (ce serait du suicide :-D)

il faudrait je pense que tu redéfinisse le besoin
si j'ai bien compris: lorsqu'un fichier s'ouvre, toutes les feuilles doivent être protégées..
--> plutot que proteger les feuilles à l'ouverture.. ne ferais tu pas mieux de TOUT protéger par défaut (donc rien à faire à l'ouverture) par contre.. pendant l'utilisation du fichier, tu déprotèges pour travailler dessus, tu enregistres et tu reprotège avant de fermer..
 

xvella

XLDnaute Occasionnel
Le fichier de Menu n'est qu'un simple menu de sélection (Très simple) celui-ci permet la gestion d'une dixaine de fichier avec comme dans le cas de prog des userform de saisie de données qui eux ne premmetent pas l'accès au feuille du classeur. Dans c userform toutes est gérer de la simple frappe sur le clavier à la sauvegarde multi-fichier.
Mon soucci était que depuis la nouvelle version d'excel les impressions et la femeture d'excel lui même son devenu problématique.
Donc je cherche à n'avoir q'un seul fichier ouvert à la foi comme cela j'evite certain problème; avant le fichier menu était tout le temps ouvert.
Pour précission l'outil global est sur sevreur, le fichier menu est unique pour chaque PC mais tout le reste est commun sur l'ensemble du serveur (qui lui est européens)
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonsoir.
Ne pourriez vous essayer des structures genre, dans Menu.xlsm:
VB:
Private Sub Workbook_Open()
Application.OnTime Now, "Menu"
End Sub
histoire de faire en sorte que cette demande d'exécution soit différée, mais seulement de ce qu'il faut pour que l'autre classeur termine son exécution en se fermant ?
 

xvella

XLDnaute Occasionnel
Bonsoir Dranreb,

Et Merci à toi. Cela Marche mais avec un ajustement:

Dans ThisWorkbook:
Private Sub Workbook_Open()
Tempo
Application.OnTime Now + TimeValue("00:00:05"), "Prog"
End Sub

puis dans un module:
Option Explicit
Dim Tps As Date

Sub Tempo()
'Programmation de l'évènement toutes les secondes
Tps = Now + TimeValue("00:00:01")
Application.OnTime Tps, "Tempo"
'Traitement optionnel
Sheets("F1").Range("A1").Value = Format(Now, "hh:nn:ss")
End Sub

Sub Stop_Tempo()
On Error Resume Next
'Stop la gestion de OnTime
Application.OnTime Tps, "Tempo", , False
End Sub

Tempo est nécésaire sinon le programme ne retrouve pas l'évènement.
Stop_Tempo est nécésaire pour arrète le procécus.

Merci encore à tous les deux de vous être penchez sur mon problème.
 

xvella

XLDnaute Occasionnel
Pourquoi quand la command close est bloquer par l'ouverture du userform au départ du problème.
Avec ta solution, tu lance est mémoire temporel le userform sans l'executer. Ce qui permet à la command close de ce faire.

Merci encore à vous 2.
A+
 

Dranreb

XLDnaute Barbatruc
Alors je ne vois pas quels ajustements évoqués au #10 il vous aurait fallu.
Ces deux UserForms avec ShowModal = True s'ouvrent bien mutuellement après s'être fermés, sans jamais encombrer la pile de variables locales de procédures non terminées s'appelant mutuellement.
 

Pièces jointes

  • Classeur1.xlsm
    23.7 KB · Affichages: 25
Dernière édition:

Discussions similaires

Réponses
7
Affichages
625

Statistiques des forums

Discussions
312 094
Messages
2 085 240
Membres
102 832
dernier inscrit
kirale