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 :

Récupérer données depuis classeur fermé


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Septembre 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Septembre 2019
    Messages : 27
    Par défaut Récupérer données depuis classeur fermé
    Bonjour,

    Je souhaite mettre à jour à l'ouverture de fichiers Excels les données d'une liste présentes dans un autre classeur excel fermé.

    J'ai trouvé sur internet (https://silkyroad.developpez.com/VBA/ClasseursFermes/) une macro utilisant le mode ADO prête à l'emploi si j'ose dire que j'ai mis dans une procédure à l'ouverture du fichier (Workbook open)

    le problème, c'est que cela fonctionne uniquement si mon classeur source (LISTE_BDD.xlsx) est ouvert !? LOL

    Je ne pense pas que cela provienne de ma version d'Excel (excel 10, versoin 14.0)...

    Merci par avance de votre aide !


    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Private Sub Workbook_Open()
     
        Dim Cn As ADODB.Connection
        Dim Fichier As String
        Dim NomFeuille As String, texte_SQL As String
        Dim Rst As ADODB.Recordset
     
        'Définit le classeur fermé servant de base de données
        Fichier = "N:\13_APPLICATIONS_EXCEL\Applications_en_cours_de_Developpement\FS#1264 - MAJ de tous les applicatifs Excel - Liens ODBC & USERMDP\_APPLI MAJ\LISTE_BDD.xlsx"
        'Nom de la feuille dans le classeur fermé
        NomFeuille = "Feuil1"
     
        Set Cn = New ADODB.Connection
     
        '--- Connection ---
        With Cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Data Source=" & Fichier & _
                ";Extended Properties=Excel 8.0;"
            .Open
        End With
        '-----------------
     
        'Définit la requête.
        '/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
        texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
     
        Set Rst = New ADODB.Recordset
        Set Rst = Cn.Execute(texte_SQL)
     
        'Ecrit le résultat de la requête dans la cellule A2
        Range("G2").CopyFromRecordset Rst
     
        '--- Fermeture connexion ---
        Cn.Close
        Set Cn = Nothing
     
    End Sub

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Tu n'as pas choisi la bonne procédure.
    Celle-ci est pour les classeurs avant 2007...

    Voir donc ici :
    https://silkyroad.developpez.com/VBA...Fermes/#LIII-C


    et ici pour lire:
    https://silkyroad.developpez.com/VBA...sFermes/#LIV-A

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Septembre 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Septembre 2019
    Messages : 27
    Par défaut
    Bonsoir pijaku,

    Merci pour ton retour.
    Cela fonctionne en effet avec le fichier fermé mais avec un fichier source de type xls et non xlsx...

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Les 2 liens donnés dans mon précédent message permettent de se connecter à un fichier xlsx fermé.
    Regarde bien, la connexion n'est pas celle que tu utilises...

  5. #5
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Septembre 2019
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Septembre 2019
    Messages : 27
    Par défaut
    J'ai toujours une "erreur automation"
    Serait ce lié à un activeX non activé ou une version d'activeX non activée..?

Discussions similaires

  1. Alimenter lisbox depuis classeur fermé et récupérer les données
    Par Mandragore99 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/11/2017, 17h29
  2. Récupérer des données de classeurs fermés
    Par cedaud dans le forum Excel
    Réponses: 3
    Dernier message: 15/03/2016, 09h02
  3. Données/Validation classeur fermé Distant
    Par deniooo dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 25/06/2008, 18h12
  4. Copier données vers classeur fermé
    Par andy38 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/06/2008, 23h35
  5. Réponses: 6
    Dernier message: 02/12/2006, 20h51

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