A mettre dans ThisWorkBook : Option Explicit Private Sub Workbook_Open() 'on verifi si un fichier ou plus est/sont deja ouvert(s) 'attention ce fichier sera comptabilisé If Workbooks.Count > 1 Then 'au moins un fichier déjà ouvert Dim ExcelAppli As Object, OpFichier As Object Application.DisplayAlerts = False 'pour pouvoir ouvrir ce fichier une deuxieme fois il faut que le 1ere soit en lecture seul(read-only) 'donc on passe ce fichier(ouvert) en lecture seul ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly 'on lance la nouvelle session excel Set ExcelAppli = CreateObject("Excel.Application") 'ExcelAppli.Visible = False 'on ouvre ce meme fichier dans la nouvelle session Set OpFichier = ExcelAppli.Workbooks.Open(ThisWorkbook.Path & "\" & ThisWorkbook.Name) Application.DisplayAlerts = True 'on vide les variables objet Set OpFichier = Nothing Set ExcelAppli = Nothing 'on ferme ce fichier sans le sauver ThisWorkbook.Close False Else 'cette partie s'applique à la 2ieme ouverture ou à une ouverture dans une session 'excel sans autre fichier ouvert DoEvents Application.Visible = False UserForm1.Show 'ATTENTION ce formulaire doit etre NON MODAL End If End Sub ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- Dans le code du Userform1: Private Sub CommandButton1_Click() 'on ferme excel Application.Quit End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.