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 6 et antérieur Discussion :

Ecrire ds un fichier excel DEJA ouvert


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Mai 2008
    Messages : 137
    Par défaut Ecrire ds un fichier excel DEJA ouvert
    Bonjour,
    De mon prog vb je test si un fichier excel est ouvert ou non. Si non, je l'ouvre puis ecrit dedans. Si oui, j'aimerai écrire directement dedans mais là il me manque qlqchose ...
    Voici a quoi ressemble mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    If IsFileOpen(App.Path & "\toto.xls") = False Then 
       Set appExcel = CreateObject("Excel.Application")
       Set wbExcel = appExcel.Workbooks.Open(App.Path & "\toto.xls")
       appExcel.Visible = True
    End If
     
    Set FeuilleExcel = appExcel.ActiveWorkbook.Sheets("Contacts")
    FeuilleExcel.Cells(6, 2) = Adresse
    La fonction IsFileOpen marche très bien et me retourne True ou False. Dans le cas ou mon fichier est déjà ouvert, je récupère donc True et passe tout de suite à l'écriture mais là mon appli plante pour 1 variable non definie, j'imagine que c'est appExcel qui n'est 'définie' que dans le cas de l'ouverture du fichier mais comment définir cette variable autrement ?

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Citation Envoyé par Teddy7 Voir le message
    Bonjour,
    De mon prog vb je test si un fichier excel est ouvert ou non. Si non, je l'ouvre puis ecrit dedans. Si oui, j'aimerai écrire directement dedans mais là il me manque qlqchose ...
    Voici a quoi ressemble mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    If IsFileOpen(App.Path & "\toto.xls") = False Then 
       Set appExcel = CreateObject("Excel.Application")
       Set wbExcel = appExcel.Workbooks.Open(App.Path & "\toto.xls")
       appExcel.Visible = True
    End If
     
    Set FeuilleExcel = appExcel.ActiveWorkbook.Sheets("Contacts")
    FeuilleExcel.Cells(6, 2) = Adresse
    La fonction IsFileOpen marche très bien et me retourne True ou False. Dans le cas ou mon fichier est déjà ouvert, je récupère donc True et passe tout de suite à l'écriture mais là mon appli plante pour 1 variable non definie, j'imagine que c'est appExcel qui n'est 'définie' que dans le cas de l'ouverture du fichier mais comment définir cette variable autrement ?
    Pas besoin de IsFileOpen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    on error resume next
    set wbExcel=getobject(App.Path & "\toto.xls")
    if wbExcel is nothing then
       set  appExcel=createobject("Excel.Application")
       Set wbExcel = appExcel.Workbooks.Open(App.Path & "\toto.xls")
       appExcel.Visible = True
    endif
     
     
    '.../...

  3. #3
    Membre confirmé
    Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Mai 2008
    Messages : 137
    Par défaut
    Ok Dark, mais dans ce cas comment précise tu la feuille sur laquelle travailler ?
    J'ai besoin d'un truc comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Set FeuilleExcel = appExcel.ActiveWorkbook.Sheets("Contacts")
    FeuilleExcel.Cells(6, 2) = Adresse
    Ca c'est bon si j'ouvre mon fichier car alors j'identifie bien appExcel. Mais dans le cas ou le fichier est déjà ouvert, cette variable n'est alors pas renseignée !
    Que j'utilise ton code ou pas, j'ai le même problème, il faut bien que je precise d'une manière ou d'une autre la feuille sur laquelle je veux travailler ...

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Le code à DackVader te donne directement une variable pointant sur ton classeur : wbExcel , utilise la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wbExcel.sheets("Contacts").Cells(6, 2) = Adresse

    tu peu aussi passer par une variable intermédiaire de type feuille de calcul :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set Feuille = wbExcel.sheets("Contacts")


  5. #5
    Membre confirmé
    Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Mai 2008
    Messages : 137
    Par défaut
    Ok, merci beaucoup.

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

Discussions similaires

  1. [Débutant] ecrire dans un fichier excel ouvert
    Par gregm954 dans le forum VB.NET
    Réponses: 7
    Dernier message: 01/05/2015, 19h58
  2. [AC-2013] Ecrire dans un fichier Excel 2013 ouvert
    Par unlucky luke dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/06/2014, 13h23
  3. Ecrire depuis MATLAB dans fichier Excel déjà ouvert
    Par kornmuse dans le forum MATLAB
    Réponses: 4
    Dernier message: 16/02/2012, 09h43
  4. Réponses: 2
    Dernier message: 17/08/2009, 19h59
  5. Lire fichier Excel deja ouvert.
    Par ketthos dans le forum C#
    Réponses: 2
    Dernier message: 28/05/2007, 00h59

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