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 :

[VBA Excel] Ouverture d'une nouvelle session Excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [VBA Excel] Ouverture d'une nouvelle session Excel
    Bonjour,

    J'ai écrit un petit programme VBA qui ouvre un autre classeur Excel et en exécute le contenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'Ouverture du programme
                Workbooks.Open Filename:=FichierX
                ActiveWorkbook.RunAutoMacros xlAutoOpen
    Hors, ce classeur ferme tous classeurs / feuilles Excel qui sont ouvert dans la même session Excel que lui (C'est son fonctionnement normal et je souhaite le conserver tel quel, car il modifie également les menus d'Excel). Donc, afin de conserver ouvert d'autres classeurs Excel que j'aurais déjà ouvert, j'aurais aimé savoir s'il était possible d'ouvrir une nouvelle session Excel afin d'y ouvrir le classeur en question.

    Merci par avance pour vos réponses.

  2. #2
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Points : 116
    Points
    116
    Par défaut
    Si je comprends bien tu veux ouvrir par macro un fichier excel à partir d'un autre fichier excel, sans pour autant fermer quoi que ce soit?

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu peux toujours essayer ça (jamais testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub TaSub()
    Dim XlAppli As Object
    Dim XlCl As Workbook
    Dim Xlfl As Worksheet
        Set XlAppli = CreateObject("Excel.Application") '< L'appli Excel
        Set XlCl = XlAppli.Workbooks.Open("D:\xls\LeClasseur.xls") '< le classeur
        Set Xlfl = XlCl.Worksheets("Feuil1") '< la feuille
    'et pour en sortir
        XlCl.Close False 'ou true
        XlAppli.Quit
        Set XlAppli = Nothing
        Set XlCl = Nothing
        Set Xlfl = Nothing
    End Sub
    Tu dis si ça fonctionne, c'est intéressant
    A+

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Bonjour et bienvenue sur les forums de www.developpez.com

    C'est tout à fait possible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim appExcel as Excel.Application
    Set AppExcel = CreateObject("Excel.Application")
     
    With AppExcel
        .Workbooks.Open Filename:=FichierX
        .ActiveWorkbook.RunAutoMacros xlAutoOpen
    End With
     
    appExcel.quit
    Set appExcel = Nothing
    Tu as à ta disposition tout un tas de cours/tutoriels, de FAQs.


  5. #5
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    ça marche nickel pour ouvrir la nouvelle fenêtre, mais il manquait un peu de code pour que le nouvel Excel fonctionne pleinement (J'ai besoin d'afficher le classeur que j'ouvre pour travailler dedans tout de même).

    Au final, mon code est du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim appExcel as Excel.Application
    Set AppExcel = CreateObject("Excel.Application")
     
    With AppExcel
        .Workbooks.Open Filename:=FichierX
        .Visible = True
        .ActiveWorkbook.RunAutoMacros xlAutoOpen
    End With

  6. #6
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par fmartin
    ...mais il manquait un peu de code pour que le nouvel Excel fonctionne pleinement
    Je n'allais pas te donner toute la solution
    moi ou ouskel'n'or

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello kikof, comme tu l'as compris, je n'ai jamais utilisé de deuxième session. Par contre, je me pose (juste par curiosité) la question de savoir ce que deviennent les instances... Et, question subsidiaire, y a-t-il moyen de retourner sur le classeur "appelant" et de pouvoir de nouveau exécuter les macros qu'il contient ?
    Merci

  8. #8
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par ouskel'n'or
    Hello kikof, comme tu l'as compris, je n'ai jamais utilisé de deuxième session.
    Ben non
    Par contre, je me pose (juste par curiosité) la question de savoir ce que deviennent les instances... Et, question subsidiaire, y a-t-il moyen de retourner sur le classeur "appelant" et de pouvoir de nouveau exécuter les macros qu'il contient ?
    Merci
    Je me sers des instances uniquement en automation entre Access et Excel.
    Donc à partir du moment ou j'en crée une : je la ferme (l'instance).
    Et il faut la fermer !!
    Essai un code sans fermer l'instance (appExcel.Quit) et vas dans le gestionnaire de tache. Tu as ton instance Excel !!!
    Donc il est important de la fermer et de libérer la variable (appExcel = Nothing)

    En ce qui concerne la question subsidiaire...
    A mon avis, si tu exécutes un code avec une création d'une nouvelle instance lors de la fermeture de l'instance tu devrais revenir dans le code exécuté dans la première instance.
    A voir.

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ok, merci de ta réponse, c'était juste pour savoir si mes
    Set XlAppli = Nothing
    Set XlCl = Nothing
    avaient une raison d'être ou non ici.
    A+

  10. #10
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par ouskel'n'or
    Ok, merci de ta réponse, c'était juste pour savoir si mes
    avaient une raison d'être ou non ici.
    A+
    Ces lignes ont une raison d'être

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ok, merci.
    A+

    (Si tu penses utile de faire le ménage tu peux supprimer mes questions)

  12. #12
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Quand j'ouvre ma nouvelle instance et que je suis effectivement dedans (Fenêtre ouverte plein écran comme je le souhaitais), le code présent dans la macro d'appel, s'arrête jusqu'à ce que cette fenêtre reprennent la main (Fermeture de la session Excel ou Click manuel marche tous les deux).

    S'il n'y a pas le code "Visible = True", la session Excel reste caché, mais tourne effectivement en tâche invisible (un processus dans le gestionnaire de processus, et rien pour y avoir accès), d'où l'obligation d'avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    appExcel.quit
    Set appExcel = Nothing
    à la fin d'une macro VBA qui n'aurait pas besoin d'afficher un nouvel Excel.

    Merci de votre aide, la macro effectue bien ce que je voulais.

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

Discussions similaires

  1. [XL-2003] Ouverture d'une autre session d'EXCEL
    Par JOHN14 dans le forum Excel
    Réponses: 2
    Dernier message: 16/04/2010, 12h28
  2. Réponses: 11
    Dernier message: 21/01/2009, 15h55
  3. Création d'une nouvelle fonction Excel (VBA)
    Par alinehg dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/05/2008, 20h20
  4. forcer l'ouverture d'une nouvelle Session
    Par leo13 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 22/09/2007, 14h11
  5. [VBA-E][DEBUTANT] Agrandir une fenêtre classeur Excel
    Par skual dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/02/2006, 15h18

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