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 :

Accéder à la valeur d'une cellule d'un autre fichier excel depuis VBA


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Accéder à la valeur d'une cellule d'un autre fichier excel depuis VBA
    Bonjour à tous,

    Je suis à la recherche d'une solution pour accéder , depuis un programme VBA , à la valeur d'une cellule (disons $E$4 par exemple) d'un autre fichier excel.

    Pour l'instant j'ai fait ca , qui permet de choisir et d'ouvrir le fichier sur lequel on veut accéder à la cellule.

    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
            Dim sChemin As String
            Dim objXls As New Excel.Application
     
            sChemin = Application.GetSaveAsFilename()
     
            ' ouvrir un document Excel
            'objXls.Documents.Open sChemin
     
            'Déclaration des variables
            Dim appExcel As Excel.Application 'Application Excel
            Dim wbExcel As Excel.Workbook 'Classeur Excel
            Dim wsExcel As Excel.Worksheet 'Feuille Excel
     
            'Ouverture de l'application
            Set appExcel = CreateObject("Excel.Application")
     
            Set wbExcel = appExcel.Workbooks.Open(sChemin)
            appExcel.Visible = True
    mais après je ne sais plus comment lui dire "cellule E4 ". Value ?

    merci beaucoup

    P.S.: il est tout à fait possible de changer complètement de méthode depuis le début

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    Regarde ce Tuto de SilkyRoad, c'est une tres bonne methode qui t'evite d'ouvrir le classeur concerné:
    http://silkyroad.developpez.com/VBA/ClasseursFermes/

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    ok merci

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Problème résolu?

    Bouton , en bas de discussion.

    Merci
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Hello ! encore moi !

    En fait, ce tutoriel est très bon, mais lorsque j'envoie la Sub extractionValeurCelluleClasseurFerme() (lire une valeur dans un classeur fermé) , alors : il envoie l'erreur suivante:

    " erreur d'éxécution '-2147467259(800004005), La table externe n'est pas dans le format attendu"

    au niveau de :

    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
    Set Source = New ADODB.Connection
        Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
     
    dans la Sub qui commence ainsi:
     
    Sub extractionValeurCelluleClasseurFerme()
        Dim Source As ADODB.Connection
        Dim Rst As ADODB.Recordset
        Dim ADOCommand As ADODB.Command
        Dim Fichier As String, Cellule As String, Feuille As String
     
        'Adresse de la cellule contenant la donnée à récupérer
        Cellule = "B4:B4"
     
        Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
        'Chemin complet du classeur fermé
        Fichier = Application.GetSaveAsFilename(, , , "Sélectionnez l'agrégat à intégrer à la relation de couverture, puis cliquez sur <Enregistrer>")
     
        Set Source = New ADODB.Connection
        Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
    J'ai essayé de cocher des bibliothèques dans "Références", mais je n'ai pas trop d 'idées, merci bcp par avance !

    G.

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    je ne comprend pas à quoi sert la méthode GetSaveAsFilename dans ta procédure.
    Remplace GetSaveAsFilename par GetOpenFilename si tu veux sélectionner un classeur :

    http://excel.developpez.com/faq/?pag...etOpenFileName


    bonne soirée
    michel

Discussions similaires

  1. Macro pour prendre valeur d'une cellule dans un autre fichier.
    Par Zill1975 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/02/2013, 17h08
  2. Réponses: 1
    Dernier message: 25/01/2010, 09h07
  3. [XL-2003] Faire appel à une cellule d'un autre fichier excel
    Par rafalemirage dans le forum Excel
    Réponses: 2
    Dernier message: 02/12/2009, 10h57
  4. [VBA-E]copier une cellule d'un autre fichier excel?
    Par dev81 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/05/2007, 09h29
  5. Réponses: 1
    Dernier message: 23/09/2006, 14h12

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