IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Ouverture de fichier Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Par défaut Ouverture de fichier Excel
    Chères amies, chers amis


    Je dois ouvrir un fichier et puis le refermer, or je souhaiterais que cela soit masquer, j'ai penser à Application.ScreenUpdating = False, mais on voit malgré tous le fichiers s'ouvrir puis se fermer.

    Je ne souhaite pas utiliser les ODDB connection ou l'ADO.

    Merci

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 174
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Par exemple en ouvrant une seconde instance Excel en la cachant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub OpenWkbHidden()
      ' Procédure ouvrant une 2ème instance Excel Invisible
      Const File As String = "Fichier A.xls" ' Nom du classeur à ouvrir
      Dim appliExcel As Excel.Application
      Dim curDir As String:  curDir = ThisWorkbook.Path
      ' Ouverture d'une 2ème application Excel
      Set appliExcel = CreateObject("Excel.Application")
      With appliExcel
      .Visible = False ' Rendre l'application invisible
      .Workbooks.Open curDir & "\" & File ' Ouverture d'un fichier dans la deuxième appli
      MsgBox .Workbooks(File).Worksheets("Feuil1").Range("A1") ' Lecture de la cellule A1 de Feuil1
      .Workbooks(File).Close ' Fermeture de l'application
      End With
      ' appliExcel.Visible = True ' on affiche l'application
      Set appliExcel = Nothing
    End Sub
    [EDIT]
    Le code que j'ai publié est plutôt fait pour l'ouverture d'une application Excel depuis une autre application Office.
    Cette procédure est moins lourde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub OpenWkbHidden()
      Const File As String = "Fichier A.xls"
      Dim App As Excel.Application
      Dim wkb As Excel.Workbook
      Dim curDir As String:  curDir = ThisWorkbook.Path
      Set App = New Excel.Application
      With App
      .Visible = False ' Rendre l'application invisible
      Set wkb = .Workbooks.Open(curDir & "\" & File) ' Ouverture d'un fichier dans la deuxième appli
      End With
      MsgBox wkb.Worksheets("Feuil1").Range("A1") ' Lecture de la cellule A1 de Feuil1
      wkb.Close ' Fermeture de l'application
      ' appliExcel.Visible = True ' on affiche l'application
      Set App = Nothing
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour.
    Citation Envoyé par Nono Sto Voir le message
    j'ai penser à Application.ScreenUpdating = False, mais on voit malgré tous le fichiers s'ouvrir puis se fermer.

    De mon côté avec différentes versions d'Excel,

    avec Application.ScreenUpdating = False on ne voit ni les fichiers s'ouvrir ni se fermer ‼

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 174
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La remarque de Marc est tout à fait exacte avec une nuance tout de même. Si on arrête la procédure ou si on laisse le deuxième classeur ouvert, il est parfaitement possible de le visualiser.
    De même il est apparent dans la barre des tâches alors que si l'on ouvre une deuxième instance en rendant le classeur invisible l'utilisateur ne voit rien.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Invité
    Invité(e)
    Par défaut Bonjour,
    rien ne t’empêche d’ouvrir une nouvelle session de Excel qui elle reste masqué:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
    Dim E As Excel.Application
    Dim wb As Workbook
    Set E = New Excel.Application
    E.Visible = False
    Set wb = E.Workbooks.Open("c:\Mon.Xls")
    wb.Close False
    E.Quit
    Set wb = Nothing
    Set E = Nothing
    End Sub
    désolé j'avais pas vue que la réponse avait déjà été donné par Philippe Tulliez!

  6. #6
    Membre éclairé Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Par défaut
    Merci

    En effet cela marche, j'ai été tromper car je travaille en pas à pas /debug, mais lorsqu'on enleve les point d'arret et on laisse la macro tourner le fichier n'apparait pas.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouverture de fichier Excel avec macros
    Par Mathusalem dans le forum MATLAB
    Réponses: 2
    Dernier message: 15/06/2006, 11h39
  2. Ouverture de fichiers excel par ordre alphabetique
    Par max2245 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 30/12/2005, 16h54
  3. Réponses: 5
    Dernier message: 11/11/2005, 09h47
  4. Ouverture/écriture fichier Excel
    Par mathieu04 dans le forum Windows
    Réponses: 17
    Dernier message: 07/06/2004, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo