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 : 6123
Catégorie(s) : Trucs & Astuces
Langages dispo pour ce code :
- VBA



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} EXCEL IMPRESSION PAR LOT
Bonjour, Grâce à ce module, vous pourrez lancer des impressions d'un répertoire complet contenant ...

{Visual Basic, VB6, VB.NET, VB 2005} EXCEL SUPPRESSION PAR LOT D'UNE FEUILLE
Bonjour, Grâce à ce code vous pourrez supprimer la 2eme feuille de tous les fichiers Excel d'un ...

{Visual Basic, VB6, VB.NET, VB 2005} CALCUL TOPO SUR EXCEL AVEC FONCTION VBA
Le but de TOPOVB est de faire une grande quantité de calcul topo sur EXCEL. Calculer des points tou...

{Visual Basic, VB6, VB.NET, VB 2005} PROTECTION CONTRE LA PERTE OU L'INACTIVATION DES MACROS VBA EXCEL
Excel 2007 et + sont arrivés avec de nouveaux formats de fichiers et des problèmes qui n'existaient...

{Visual Basic, VB6, VB.NET, VB 2005} VBA EXCEL : LIRE UN FICHIER TEXTE INDÉPENDAMMENT DE SON ENCODAGE ANSI OU UTF-8 (VIA ADO.FILESTREAM)
Ajout de nouvelles méthodes et fonctions à EXCEL afin de lire les fichiers texte sans se préoccuper ...

{Visual Basic, VB6, VB.NET, VB 2005} NOUVELLE FONCTION EXCEL "OCCURENCE" POUR DÉTECTER LES DOUBLONS QUAND ON NE PEUT PAS TRIER LA FEUILLE
Pour répondre à la demande du membre SNOFNIE qui ne peut ni trier sa feuille ni en supprimer les do...

{Visual Basic, VB6, VB.NET, VB 2005} OUTLOOK ATTACHEMENTS CLEANER / EXTRACTOR
Programme permettant de sauvegarder toutes les pièces jointes d'un répertoire (et/ou de tous ses sou...

{C# / C#.NET} GESTIONNAIRE DES TODO DISSEMINES UN PEU PARTOUT DANS VOS CODES...
En ce moment, j'avais besoin d'un petit soft qui me permette de gérer la quantité interminable de TO...