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

VBA Access Discussion :

tuer le processus Excel courant dans Access [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut tuer le processus Excel courant dans Access
    Bonjour,
    Je script de l'excel depuis Access, mais je n'arrive pas à supprimer le processus Excel que j'ai déclenché sous Access.
    Pourtant mon objet Excel est unique et je lance en fin de programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    oAppExcel.Quit
    Set oAppExcel = Nothing
    Pourtant lorsque mon prog est terminée (dernière procédure executée) je peux tuer le processus Excel visible dans le Task Manager en cliquant sur le bouton de réinitialisation via le débogueur.

    Je voudrais éviter de passer par un taskkill (notamment si l'utilisateur a déjà une instance Excel fonctionnant avant l'utilisation de l'Access.)

    Est ce que vous avez une idée sur le sujet ?

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 274
    Points : 19 453
    Points
    19 453
    Billets dans le blog
    63
    Par défaut
    Salut,

    Tu as bien préfixé tous les objets Excel (worksheet..) avec oAppExcel ?

    Peux-tu donner le code complet ?

    Merci !
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut
    Bonjour,

    Merci de votre réponse, le code Excel que j'appelle depuis Access se fait dans 5 fonctions, il y a au moins 200 lignes de code, avant de vous l'imposer, je souhaite savoir si je peux d'une façon ou d'une autre utiliser un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    with oappExcel.Activeworkbook.Worksheets("Feuille en cours")
         .range("A1")...
    end with
    ou si je dois précisemenet toujours utiliser une notation complete de mon Objet Excel pour chaque reference à un element de ma feuille.
    Merci d'avance de votre retour.

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 093
    Points : 5 211
    Points
    5 211
    Par défaut
    Bonjour,

    Oui, il est possible d'adresser la feuille, le classeur...

    Mon code se termine par cette séquence et cela ferme bien excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    200     objBook.Close SaveChanges:=False
    202     objApp.Quit
    204     Set objsheet = Nothing
    206     Set objBook = Nothing
    208     Set objApp = Nothing
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Membre régulier Avatar de zoopsys
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 68
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    sinon pour tuer excel :

    Function Fct_KillExcel()

    Dim sKillExcel As String

    sKillExcel = "TASKKILL /F /IM Excel.exe"
    Shell sKillExcel, vbHide

    End Function

  6. #6
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut
    Bonjour,
    Merci des réponses, mais je n'arrive pas à retirer le bug.
    J'ai pensé que le fait d'utiliser mon objet appExcel comme parametres à travers plusieurs fonctions pourraient provoquer le bug. ( A savoir un Excel
    qui reste ouvert)
    Ainsi j'ai 9 fonctons de ce types qui se succèdent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Fonctions_Pour_Octave.RefR(oAppExcel, feuille)
    Dont le contenu est du type :
    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 RefR(appExcel As Excel.Application, feuille As String)
    ''
        With appExcel
    '       MsgBox "Appuyez sur OK pour lancer la mise en forme de la Price Liste et attendez le message de fin "
            .Sheets(feuille).Range("A1").Select
            Selection.AutoFilter field:=1, Criteria1:="=*R", Operator:=xlAnd
            Set tbl = ActiveCell.CurrentRegion
            tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select
            Selection.Delete Shift:=xlUp
            Selection.AutoFilter field:=1
            Selection.AutoFilter
            .Sheets(feuille).Range("A1").Select
        End With
     
    End Sub
    A la fin de mes fonctions je cherche à supprimer la référence à Excel comme
    cela m'a été indiqué via . et Mais il me reste un Excel présent dans le TaskManager, et je n'envisage pas sérieusement de faire un Taskkill.
    Merci de vos idées.

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 274
    Points : 19 453
    Points
    19 453
    Billets dans le blog
    63
    Par défaut
    Salut,

    ActiveCell n'est pas préfixé.

    Après Selection devrait l'être aussi puisque c'est un membre de la classe window, elle-même membre de Excel.

    Sers toi de l'explorateur d'objet fourni avec Excel pour savoir quoi mettre devant

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  8. #8
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut
    Merci bien de vos idées. Je mets cela à jour dans mon code.
    Cdlt.

  9. #9
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut
    Merci cela a bien marché, je saurais dorénavant comment traiter Excel depuis Access.

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

Discussions similaires

  1. Application Excel - Tuer le processus EXCEL.EXE?
    Par xVINCEx dans le forum VB.NET
    Réponses: 21
    Dernier message: 18/04/2012, 10h43
  2. Generation d'un fichier EXCEL stocké dans Access
    Par skillipo dans le forum VBA Access
    Réponses: 6
    Dernier message: 30/11/2007, 17h25
  3. Tuer un processus (Excel pour ne pas le citer)
    Par PsykotropyK dans le forum Access
    Réponses: 11
    Dernier message: 11/10/2006, 10h05
  4. Tuer un processus Excel dans Access
    Par Jordmund dans le forum Access
    Réponses: 4
    Dernier message: 29/08/2006, 08h59
  5. VB6: tuer le processus Excel
    Par Svart26 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/07/2006, 08h02

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