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

VB.NET Discussion :

fermeture excel tache de fond


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 124
    Par défaut fermeture excel tache de fond
    salut

    voila je fait des manip dans un fichier excel via la macro suivante qui marche tres bien (la manipulation des cellule se fait bien)

    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
    17
    18
    'ouverture du cahier
            xlApp = New Excel.ApplicationClass
            xlWorkBook = xlApp.Workbooks.Open(fichier)
            xlWorkSheet = xlWorkBook.ActiveSheet
     
     
            For Each cell In xlWorkSheet.Cells.Range("check1").Value
     
                If cell = "" Then
     
                    xlWorkBook.Close() 'Fermeture d'Excel
                    xlApp.DisplayAlerts = True 'remet l'alerte  oui=True   non=False
                    'objExcel.Application.Visible=True 'remet la visibilité
                    xlApp.Quit()
     
                    xlApp = Nothing
                    xlWorkBook = Nothing
                    xlWorkSheet = Nothing
    La macro marche parfaitement mais le processus EXCEL.EXE reste en mémoire.
    alors après pas mal de recherche , j'ai essayé la solution suivante mais rien ne marche le processus reste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub kill_process(ByVal proc)
            Dim p() As Process
            Dim r As Process
            p = Process.GetProcessesByName(proc) 'on fournit le nom du process en parametre
            For Each r In p 'puis on les kill tous
                r.CloseMainWindow()
            Next
        End Sub
    j'ai fait aussi d'autre essai avec GC.collect ....

    au final je m'apercois que quand je ferme mon form (le formulaire qui declenche ma macro excel) les processus se ferme.
    donc ce qoit etre le form qui bloque la fermeture d'excel proprement.

    Donc si je ne peux pas fermer excel proprement mon programme ne sert a rien

    donc si qqun a une solution ???

    Merci d'avance

    bonne journée

  2. #2
    Membre expérimenté Avatar de AcidLines
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Février 2010
    Messages : 198
    Par défaut
    Peut être ce post pourra t'aider :
    http://www.developpez.net/forums/d93...appli-externe/

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

Discussions similaires

  1. Faire tourner une Application en Taches de fond
    Par ArkAng3 dans le forum MFC
    Réponses: 3
    Dernier message: 26/08/2005, 14h06
  2. Réponses: 3
    Dernier message: 07/06/2005, 14h44
  3. [application tache de fond] lancer une application
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 5
    Dernier message: 25/03/2005, 11h13
  4. executer une page en tache de fond
    Par Invité(e) dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/01/2005, 16h23
  5. [Question] serveur en tache de fond
    Par Nicaisse dans le forum Réseau
    Réponses: 11
    Dernier message: 14/08/2003, 10h47

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