Lire dans un classeur fermé sans formule

Bonjour,

Evidemment j'ai fait quelques recherches avant de venir vous solliciter ici :)

Je sais déjà un peu manipuler le VBA et je pensais pouvoir m'en sortir en appliquant la méthode de recopie de formule, ce qui me semblait tout de même très efficace :)

Mais bon.. après plusieurs essais ça ne marche pas, je ne sais pas pourquoi, ou plus précisément ça marche quand ça veut, bref je change d'idée.

J'ai trouvé ceci

Sub RequeteClasseurFerme()
    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 = "C:\monClasseurBase.xls"
    '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("A2").CopyFromRecordset Rst

    '--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing

End Sub

Que j'ai voulu appliquer mais je n'y arrive pas.

Je précise que je fais ça pour mon boulot et que le réseau sur lequel je travaille n'est pas internet; néanmoins, voici un rapide résumé de mon idée :

J'ai une quinzaine de clients.

Chaque client doit remplir un fichier qu'on appellera CRJ.

Dans chaque CRJ, pour aider la saisie des clients, j'ai fait des userform en fonction d'autres cellules, bref du classique.

Sauf que les Listbox doivent bien nourrir leurs données de qqpart, d'une base de données.

Or, cette bdd existe, mais elle est sur un serveur auquel mes clients et moi pouvons accéder via une url https://

Donc je voudrais bien ne pas avoir à recopier 15 fois les bdd dans mes 15 CRJ pour aider le remplissage de mes CRJ, vous suivez?

Surtout que mes bdd évoluent, et ce serait un enfer à maintenir à jour...

Et donc je voudrais que mes CRJ puissent aller chercher les infos nécessaires au remplissage des listbox directement sur le fichier distant, sur le serveur.

D'où mon idée de "lire dans un classeur fermé"

Donc, je me suis intéressé à Microsoft OLE DB Jet.

J'ai pas réussi à adapter le code, il me dit que "peut-être le fournisseur est mal enregistré."

Et en fait je me rends compte que je capte rien à ce code par exemple.

Donc, plutôt que de vous demander qqch qui me ferait le TAF, pouvez-vous m'expliquer ce code?

En particulier le passage sur le fournisseur, et la syntaxe des requêtes SQL?

Sachant que mon idée finale serait juste de pouvoir accéder à une liste de valeurs qui me serviraient pour remplir le fichier ouvert.

Merci à tous :)

Bonjour BenJJ et

Je pense que dans ce que vous demandez, vous vous fourvoyez

Vouloir lire dans un classeur fermé sur un site accessible uniquement en HTTPS, jamais vu ça

Je pense qu'il faudrait regarder plus du côté de Power Query

@

Merci BrunoM45,

en plus je ne souviens avoir testé l'import de données via le bandeau"données" en important la feuille qui contenait les données et ça marchait bien.

seul hic: j'aimerais bien ne pas avoir à faire cette manip d'importation pour chaque fichier mais pouvoir la lancer par VBA car en fait le chemin d'accès et le fichier de base de données dépend du client.

je vais approfondir le sujet de power query merci.

Bonjour,

alors si power query me permet de faire un lien entre les fichiers clients et le fichier bdd qui est sur le serveur, il me faudrait juste la possibilité de creer un lien power query par VBA. J'ai besoin du VBA car le chemin et le nom du fichier dépendent de la valeur d'une cellule renseignee par l'utilisateur.

Bonjour,

Power query est capable d'aller chercher dans un fichier dont le lien serait inscrit dans une cellule du fichier, de ce que j'ai entendu dire.

Ce serait le jackpot!

Bonjour le fil

C'est "simple", il suffit d'aller voir ce fil et @78Chris (The Best Of Power Query ) donne la réponse

https://forum.excel-pratique.com/excel/requete-power-query-a-partir-d-un-chemin-variable-dans-une-ce...

Magnifique ! C'est absolument magique🤩🤩🤩.

Bon il me reste plus qu'à trouver l'événement qui se déclenche quand telle cellule change et ensuite je lancerai l'actualisation des données et le lien Power Query point désormais vers le bon classeur https et les listes déroulantes sont remplies avec les bons éléments comme par magie!

Merci beaucoup a tous

ERREUR!

Rechercher des sujets similaires à "lire classeur ferme formule"