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 :

VB.net et Excel - Eviter des instances multiples [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 38
    Par défaut VB.net et Excel - Eviter des instances multiples
    Bonjour, je travaille depuis peu sous VB 2010 Express et j'essaye de l'utiliser pour manipuler des données dans des classeurs Excel.

    Je cherche actuellement, à partir d'un exécutable créé en VB.net, à ouvrir un fichier Excel (non visible), pour copier les informations dont l'utilisateur a besoin dans un nouveau fichier (visible ensuite).

    Après quelques recherches, j'arrive donc :
    - A ouvrir le classeur contenant les données en le gardant invisible,
    - A créer un nouveau classeur puis à y coller les informations nécessaires,
    - A refermer le classeur contenant les données,
    - A rendre visible le nouveau classeur.

    Tout fontionne à la perfection, mais le soucis survient lorsque j'essaye de faire la même chose lorsqu'un classeur Excel est déjà ouvert (même un n'ayant rien à voir avec ceux concerné).

    Car en effet, pour ouvrir le classeur de données, il me semble que je suis obligé de créer une nouvelle instance d'Excel.

    Si aucun classeur n'était ouvert auparavant, refermer le nouveau classeur termine cette instance. Mais si une instance existait déjà (suite à l'ouverture au préalable d'un classeur), une deuxième instance est créée, et c'est cette deuxième qui est terminée lorsque l'on ferme tous les fichiers ouverts.

    Il reste donc une instance non fermée...

    L'un de vous aurait une idée de comment résoudre ce problème? (tout en sachant que je ne souhaite pas sauvegarder le nouveau classeur créé)

    En espérant avoir été clair dans mes explications. ^^

  2. #2
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Bonjour,
    Tu trouvera un tuto microsoft sur le site pour exporter des données excel sans avoir à ouvrir le fichier , en te connectant tel une Base de donnée.
    https://support.microsoft.com/fr-fr/kb/257819/fr
    un modèle sur le blog suivant

    http://blog.developpez.com/lilroma/p...lle_excel_vers

    cdt

  3. #3
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 38
    Par défaut
    Tout d'abord, merci pour ta réponse!

    Mais je ne pense pas que le datagridView soit une solution adéquate pour ce que je veux faire.

    Le but est de récupérer des informations se trouvant sur une feuille Excel pour ensuite en donner certaines à l'utilisateur via une autre feuille Excel.

    Ceci pour qu'il puisse faire ensuite ce qu'il veut avec les données.

    Or, même si j'utilisais donc l'option décrite pour récupérer les données, il me faudrait ensuite tout de même créer la nouvelle feuille Excel, ce qui ouvrirait quand même une nouvelle instance Excel.

  4. #4
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Re,
    Rien ne t'oblige de faire afficher dans une datagridview une fois importée les données de la feuille seront stockés de toute manière dans la table 0 du dataset.

    Après tu peux créer une feuille excel et redistribuer ces données comme bon il te semble comme une BDD.


    Cdt

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Il faut que tu libère la session (dispose)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AppXls.quitte 
    GC.SuppressFinalize(AppXls)
    AppXls = nothing

  6. #6
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Juillet 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 38
    Par défaut
    Ashireon, ce que je veux dire, c'est que le problème d'instances Excel sera donc le même car dans les deux cas (en utilisant le dataset ou non) j'aurai une nouvelle instance vu que je dois créer une feuille Excel.

    rdurupt, merci également pour ta réponse. Je ne pourrai faire le test que mardi, de retour au travail.
    Mais une question me vient d'emblée : Est-ce que le "AppXls.quit" ne va pas fermer mon nouveau classeur (voir même des classeurs ouverts par l'utilisateur) ?

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

Discussions similaires

  1. Recherche à travers des instances multiples de Word
    Par Akisax dans le forum Général VBA
    Réponses: 4
    Dernier message: 07/02/2014, 11h34
  2. Réponses: 0
    Dernier message: 20/07/2009, 11h57
  3. [VB.NET] [VS 2003] Liste des objets instanciés
    Par Mouse dans le forum VB.NET
    Réponses: 4
    Dernier message: 23/10/2006, 19h15
  4. Réponses: 5
    Dernier message: 17/07/2006, 18h34
  5. [VB.NET][Excel] utiliser des fonction Excel comme xlToRight
    Par Alexj51 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/03/2006, 12h10

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