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

Macros et VBA Excel Discussion :

import de EXCEL depuis WORD


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 75
    Par défaut import de EXCEL depuis WORD
    Bonjour,

    Pour aller chercher un tableau EXCEL et le mettre dans un Variant dans le VBA WORD, j'ai fait ceci, qui fonctionne parfaitement...mais au premier appel seulement! Ensuite, j'ai une "erreur 1004 - La méthode range a échoué..". à cette ligne :

    Dico1 = ActiveSheet.Range("A2", Range("B65536").End(xlUp)).Value

    Quelqu'un pourrait-il m'expliquer où est mon erreur? (sur le forum VBA WORD, on m'a suggéré d'ajouter Set AppExcel=Nothing mais cela ne va pas non plus)

    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
    Dim Dico1 As Variant
     
     
    Sub Appel()
    Dico1 = Empty
    Call ChercheDansExcel
    MsgBox Dico1(3, 1) & "   " & Dico1(3, 2)
    End Sub
     
     
    Sub ChercheDansExcel()
    Dim AppExcel As Excel.Application
    Dim DocExcel As Excel.Workbook
    Set AppExcel = CreateObject("Excel.Application")
    AppExcel.Visible = True
    Set DocExcel = AppExcel.Workbooks.Open("C:\Documents and settings\bla bla.....blabla\dicoessai1.xls")
    DocExcel.Worksheets(1).Activate
    Dico1 = ActiveSheet.Range("A2", Range("B65536").End(xlUp)).Value
    DocExcel.Close
    AppExcel.Quit
    End Sub
    Merci d'avance

    Cordialement

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Instancie la feuille de calculs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set DocExcel = AppExcel.Workbooks.Open("C:\Documents and settings\bla bla.....blabla\dicoessai1.xls")
    Dim LaFeuille as worksheet
    Set LaFeuille = DocExcel.Worksheets(1)
    Dico1 = LaFeuille.Range("A2", Range("B65536").End(xlUp)).Value
    DocExcel.Close
    AppExcel.Quit
    Set DocExcel = Nothing
    Set LaFeuille = Nothing
    Set AppExcel = Nothing
    Tu dis

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 75
    Par défaut
    Bonjour,

    Merci pour ta réponse. J'ai donc essayé ceci, mais j'ai toujours la même erreur au même endroit :

    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
    Dim Dico1 As Variant
     
    Sub Appel()
    Dico1 = Empty
    Call ChercheDansExcel
    MsgBox Dico1(3, 1) & "   " & Dico1(3, 2)
    End Sub
     
     
    Sub ChercheDansExcel()
    Dim AppExcel As Excel.Application
    Dim DocExcel As Excel.Workbook
    Dim LaFeuille As Worksheet
    Set AppExcel = CreateObject("Excel.Application")
    AppExcel.Visible = True
    Set DocExcel = AppExcel.Workbooks.Open("C:\Documents and settings\blabla......blabla\dicoessai1.xls")
    Set LaFeuille = DocExcel.Worksheets(1)
    Dico1 = LaFeuille.Range("A2", Range("B65536").End(xlUp)).Value
    DocExcel.Close
    AppExcel.Quit
    Set DocExcel = Nothing
    Set LaFeuille = Nothing
    Set AppExcel = Nothing
    End Sub
    Cordialement

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Il y a sans doute un problème de délai entre les opérations d'ouverture, de lecture et d'écriture. Ajoute DoEvents entre chacune de ces opérations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Set AppExcel = CreateObject("Excel.Application")
    DoEvents
    AppExcel.Visible = True
    Set DocExcel = AppExcel.Workbooks.Open("C:\Documents and settings\blabla......blabla\dicoessai1.xls")
    DoEvents
    Set LaFeuille = DocExcel.Worksheets(1)
    Dico1 = LaFeuille.Range("A2", Range("B65536").End(xlUp)).Value
    DoEvents
    DocExcel.Close
    DoEvents
    AppExcel.Quit
    DoEvents donne le temps au système d'effectuer les opérations d'ouverture, de lecture, d'affichage des données... etc

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 75
    Par défaut
    Désolé, toujours le fonctionnement une seule fois!

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Teste en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dico1 = LaFeuille.Range("A2:B" & LaFeuille.Range("B65536").End(xlUp).row).Value
    DoEvents
    DocExcel.Close
    Je n'avais pas détaillé. Teste déjà ça, mais je me demande comment ça peut fonctionner la première fois...
    A+

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

Discussions similaires

  1. [WD-2003] Import Graph Excel ds Word Pb Impression Noir et Blanc
    Par rsoul dans le forum VBA Word
    Réponses: 0
    Dernier message: 15/04/2009, 17h30
  2. Lancer Macro Excel depuis word
    Par Tintou dans le forum VBA Word
    Réponses: 1
    Dernier message: 21/02/2008, 17h17
  3. Modifier un graphique Excel depuis Word
    Par hsoulard dans le forum VBA Word
    Réponses: 3
    Dernier message: 21/09/2007, 21h44
  4. Fermer un fichier excel depuis word
    Par liop49 dans le forum VBA Word
    Réponses: 6
    Dernier message: 31/08/2007, 15h29
  5. [VBA-W] Utiliser Excel depuis Word
    Par le_sonic dans le forum VBA Word
    Réponses: 6
    Dernier message: 06/02/2007, 18h24

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