J'ai créer une petit application avec u boutton quitter ayant ce code là
Code:
Sub savequitt_QuandClic()
ActiveWorkbook.Save
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End Sub
Ce fichier est mis sur un espace commun, il a été créer sur mon poste et mis sur un serveur pour être utilisable par plusieur utilisateur, le bouton quitter ne marche que sur mon poste, pour le reste des utilisateur il a enregistrement mais pas de fermeture de l'appliocation
essaye ceci, en supposant que le nom du classeur de macro perso n'ait pas été modifié par les utilisateurs...
Code:
Option Explicit
Sub test()
If Workbooks.Count = 1 Or (Not ClasseurExiste("perso.xls") Is Nothing And Workbooks.Count = 2) Then
'application.quit
End If
End Sub
Function ClasseurExiste(c As String) As Workbook
On Error Resume Next
Set ClasseurExiste = Workbooks(c)
End Function
perso, j'aime pas trop que l'on me force à quitter Excel... surtout que sur d'anciennes versions l'utilisateur peut perdre son boulot....
modifie comme suit, à placer dans un module standard :
Code:
Option Explicit
Sub test()
ThisWorkbook.Save
If Workbooks.Count = 1 Or (Not ClasseurExiste("perso.xls") Is Nothing And Workbooks.Count = 2) Then
Application.Quit
Else
ThisWorkbook.Close
End If
End Sub
Function ClasseurExiste(c As String) As Workbook
On Error Resume Next
Set ClasseurExiste = Workbooks(c)
End Function
fonctionne chez moi sous 2003.... Faut voir ensuite combien de classeurs sont ouverts et quel est le nom du classeur de macro perso...; A noter que d'autres classeurs peuvent être ouverts et masqués..
Option Explicit
Sub test()
Dim wn As Window, i As Integer
For Each wn In Windows
If wn.Visible Then i = i + 1
Next wn
ThisWorkbook.Save
If i = 1 Then
Application.Quit
Else
ThisWorkbook.Close
End If
End Sub
dans la fenêtre des variables locales.... dans l'éditeur vba => barre de menu => affichage => fenêtre variables locales, ensuite tu exécutes le code pas à pas...