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 :

Fermer processus excel [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Par défaut Fermer processus excel
    Bonjour à tous !

    Je suis sur un nouveau projet, une sorte de configurateur.
    Ce configurateur ouvre un fichier excel "Abaque", y récupère des infos, puis le ferme...
    Sauf que le processus excel.exe ne se ferme jamais...

    Résultat à chaque demande d'ouverture du fichier, je me retrouve avec ça :

    Voilà

    Voici mon code :

    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
    19
    20
    21
    22
     
     excel.Visible = False 'la fenêtre excel est visible 
     
            Try
                excel.Workbooks.Open(exedir & "\" & "Files\ABAQUE HAUTEURS - 13 05 13.xls")
                excel.Worksheets(onglet).Select()
                excel.Range("P9").Value = ComboBox2.Text
                excel.Range("P8").Value = ComboBox4.Text
                TextBox1.Text = excel.Range("S14").Value
                TextBox2.Text = excel.Range("S16").Value
                TextBox3.Text = excel.Range("S15").Value
                Frontal1 = excel.Range("S18").Value
                Frontal2 = excel.Range("S19").Value
                Frontal3 = excel.Range("S20").Value
                Frontal4 = excel.Range("S21").Value
                excel.ActiveWorkbook.Close(SaveChanges:=False)
                excel.Application.Quit()
                ' Shell("taskkill /F /IM Excel.exe")
            Catch ex As Exception
                MsgBox("Erreur", vbCritical, "Erreur d'accès au fichier abaque requis")
                Exit Sub
            End Try
    J'ai essayé le taskkill, mais si l'utilisateur à le malheur d’être sur un autre fichier excel sans être sauvegardé, je vous laisse deviner le résultat...

    Quelquu'un aurait il une idée pour "killer" ce processus lié au fichier en question ?

    Merci...

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Utilises la classe "Process" de l'espace de nom "System.threading" :

    http://pastebin.com/u/3DotDev

    A+

  3. #3
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    si ton variable "excel" est de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new Microsoft.Office.Interop.Excel.Application();
    tu peux faire

    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
    19
    20
    21
    22
    23
    24
     
     
     excel.Visible = False 'la fenêtre excel est visible 
     
            Try
                excel.Workbooks.Open(exedir & "\" & "Files\ABAQUE HAUTEURS - 13 05 13.xls")
                excel.Worksheets(onglet).Select()
                excel.Range("P9").Value = ComboBox2.Text
                excel.Range("P8").Value = ComboBox4.Text
                TextBox1.Text = excel.Range("S14").Value
                TextBox2.Text = excel.Range("S16").Value
                TextBox3.Text = excel.Range("S15").Value
                Frontal1 = excel.Range("S18").Value
                Frontal2 = excel.Range("S19").Value
                Frontal3 = excel.Range("S20").Value
                Frontal4 = excel.Range("S21").Value
                excel.ActiveWorkbook.Close(SaveChanges:=False)
                 excel.Quit();
                ' Shell("taskkill /F /IM Excel.exe")
            Catch ex As Exception
               excel.Quit();
                MsgBox("Erreur", vbCritical, "Erreur d'accès au fichier abaque requis")
                Exit Sub
            End Try

  4. #4
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut
    Bonjour,
    Dans tous les cas, je vous conseille d'oublier l'interop Excel et de vous renseigner sur l'open XML.

    Avantages :
    - pas besoin de la solution MS office Excel sur le poste
    - Pas de pb de threads excel

    Inconvénients :
    - Format xlsx obligatoire (pour office 2003 il existe un patch pour ouvrir les xlsx)

  5. #5
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Inconvénients :
    - Format xlsx obligatoire (pour office 2003 il existe un patch pour ouvrir les xlsx)
    pour ouvrir les xls tu veux dire je suppose.

    Sinon merci pour l'info j'irai un peu jeter un œil cela m'interesse
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  6. #6
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut
    pour ouvrir les xls tu veux dire je suppose.
    Non je pensais à ce pack de compatibilité (gratuit), qui permet aux utilisateurs d'Office 2003 d'ouvrir des fichiers xlsx.
    Il n'y donc aucun intérêt à fournir des xls aux utilisateurs, on peut directement leurs fournir des xlsx.

    L'Open XML ne travaille qu'avec des fichiers xlsx (dans le sens : pas de xls).

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

Discussions similaires

  1. fermer le processus EXCEL.EXE
    Par bakman dans le forum VBScript
    Réponses: 3
    Dernier message: 26/11/2009, 13h43
  2. [AC-2003] Fermer un processus Excel
    Par cortek's dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/09/2009, 10h27
  3. fermer un processus Excel
    Par sophiesallee dans le forum VBA Access
    Réponses: 6
    Dernier message: 03/10/2007, 11h42
  4. comment fermer le processus excel sous iis
    Par dietrich dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 16/01/2007, 14h32

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