Les Snippets

Connexion

Ouvrir un fichier excel dans une nouvelle session si la session existante contien déjà un fichier ouvert

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 04/09/2008 16:02:49 et initié par bigfish_le vrai [Liste]
Vue : 3251
Catégorie(s) : Trucs & Astuces
Langages dispo pour ce code :
- VBA
- Voir tous les langages pour ce code snippet



Langage : VBA
Date ajout : 04/09/2008
Posté par bigfish_le vrai [Liste]
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
Remarque :
Pour cela le formulaire doit absolument contenir un bouton(Commandbutton1 un dans l'exemple ci-dessus) pour fermer excel

Le formulaire doit obligatoirement etre non modale donc son option Show modal doit être reglé sur False.

Attention à partir du moment ou vous aurez mis ce code dans le fichier il faudra desactiver les macros à l'ouverture pour pouvoir acceder au code.

Snippets en rapport avec : Fichier, Ouverture, Excel, Vba, Nouvelle session



Codes sources en rapport avec : Fichier, Ouverture, Excel, Vba, Nouvelle session

{Visual Basic, VB6, VB.NET, VB 2005} LISTER FICHIERS D'UN DOSSIER
ce p'tit code permet de lister les fichiers d'un dossier choisi en plaçant leur noms, leur type et l...

{Visual Basic, VB6, VB.NET, VB 2005} MACRO VBA : SYNCHRONISATION D'UN FICHIER XL PAR UN AUTRE
Le but est de synchroniser chaque ligne d'une feuille d'un fichier XL par un autre. Le critère iden...

{Visual Basic, VB6, VB.NET, VB 2005} DÉMINEUR VBA EXCEL
Un petit démineur en VBA Excel avec lageur, hauteur et nombre de mine variable ...

{Visual Basic, VB6, VB.NET, VB 2005} OUVRIR TOUS LES FICHIERS EXCEL D'UN DOSSIER ET DE SES SOUS-DOSSIERS
Petite macro permettant de choisir un dossier puis de parcourir le dossiers et ses sous-dossiers afi...

{Visual Basic, VB6, VB.NET, VB 2005} COMPARER_2FICHIERS_TEXTE
Comparer 2 listes: On charge les 2 fichiers dans 2 listBox sans afficher les lignes vides. Dans une...

{Visual Basic, VB6, VB.NET, VB 2005} MISTER MIND SOUS VBA DANS EXCEL AVEC ENREGISTREMENT DES SCORES
Un Mister mind comprenmant plusieurs niveaux de difficulés ainsi qu'une fonction de jeux en temps li...

{Visual Basic, VB6, VB.NET, VB 2005} EXPORTER LE CONTENU D'UN DATAGRIDVIEW VERS EXCEL OU N IMPORTE QUELLE AUTRE FICHIER TABULÉ
Ce bout de code est la pour reprendre, simplifier, commenter et MODERNISER une de mes vielle sources...

{Visual Basic, VB6, VB.NET, VB 2005} RENOMMER SÉRIE D'IMAGE DIRECTEMENT AVEC VBA EXCEL (CLASSEMENT SELON DATE ET HEURE DE LA PRISE DE VUE)
Les applications permettant de faire ce travail sont nombreuses. Mais je n'ai jamais trouvé de sourc...

{Visual Basic, VB6, VB.NET, VB 2005} PILOTER ACROBAT READER DEPUIS EXCEL ET VBA
Exemple d'utilisation du composant OCX AcroPDF (AcrobatReader). Permet d'ouvrir un document pdf dan...

{Visual Basic, VB6, VB.NET, VB 2005} VBA EXCEL FONCTION POUR FORMATER DES ECRITURES BANCAIRES
Je copiais mes écritures bancaires (LCL) à la main et je les formatais pour coïncider avec ma feuil...