Userform avec données externes fichier fermé (ADO)

pmfontaine

XLDnaute Occasionnel
Bonjour,
Je cherche le code pour lié un userform avec une base de données externe (fichier excel qui reste fermé)
Sur http://boisgontierjacques.free.fr/pages_site/ado.htm#CopyFrom j'ai trouvé des pistes avec ADO, mais je ne suis pas arrivé à les utiliser.
Je précise que les combobox sont liés (Grasse à ce forum et en particulier à Dranreb)

Sur le fichier joint FICHIER_DESTINATION.xlsm je souhaiterais que la table TabEspGlo qui est sur la page SOURCE soit sur un autre fichier BD_SOURCE.xlsx qui sera dans le même dossier et qui restera fermé grasse à ADO si j'ai bien compris le site de boisgontier Jacques.
(NB : La table TabEspGlo comporte plus de 220 000 lignes)
Merci d'avance pour votre aide
Patrick
 

Pièces jointes

  • FICHIER_DESTINATION.xlsm
    320.6 KB · Affichages: 43
  • BD_SOURCE.xlsx
    8.7 MB · Affichages: 74

ChTi160

XLDnaute Barbatruc
Bonjour pmfontaine
Bonjour le Fil ,le Forum
Pourquoi ne pas ouvrir le fichier ,recuperer les donnees dans un tableau temporaire ,puis le refermer et traiter les donnees?
Edit: depuis mon telephone
Bonne fin de journee
Jean marie
 

pmfontaine

XLDnaute Occasionnel
Bonsoir à tous,
Merci Jean Marie pour ta réponse.
Je pense que ne pas ouvrir un fichier qui comporte plus de 220 000 ligne doit faire gagner beaucoup de temps.
Mais je me trompe peut-être ! et dans ce cas là à quoi sert ADO ?
Patrick
 

pmfontaine

XLDnaute Occasionnel
Bonjour Lone-wolf,
merci de t'intéresser à mon problème.
Pourquoi xls ? ça ne fait que 65536 ligne pour + de 222 000 nécessaire ?
effectivement le site boisgontier Jacques donne des exemples avec excel 97-2003, mais avec les version 2007 et plus il doit bien y avoir un code équivalent ?
Patrick
 

pmfontaine

XLDnaute Occasionnel
Désolé, mais je crois que j'ai pas compris ton premier message.
Dans mon message de départ j'ai bien mis un fichier BD_SOURCE.xlsx alors pourquoi tu me dit
Le fichier BD_SOURCE. Seul incovénient, c'est à partir de ce fichier qu'il faudra copier les données.
et tu joins mon fichier transformé en xls avec beaucoup moins de donnée ?
 

Lone-wolf

XLDnaute Barbatruc
Re

Parce-que un .xlsx ne prend pas en charge les macros. Depuis BD_SOURCE, tu copie les données du classeur FICHIER_DESTINATION.
Et encore une fois, est-ce que tu est capable de sauvegarder BD_SOURCE sous "BD_SOURCE.xlsm"?
Oubien je dois venir chez toi pour te montrer comme on fait?? o_O

Sur le fichier joint FICHIER_DESTINATION.xlsm je souhaiterais que la table TabEspGlo qui est sur la page SOURCE soit sur un autre fichier BD_SOURCE.xlsx

De plus danc FICHIER_DESTINATION il n'y a que 50 lignes et BD_SOURCE en contient plus de 200000, tes fichiers d'origine.

Voilà, j'ai repris tes 1er fichiers et fait la modification. Dans le classeurs destination, double-clique sur la feuille pour copier les données.
 

Pièces jointes

  • BD_SOURCE-LW.xlsx
    8.7 MB · Affichages: 61
  • FICHIER_DESTINATION-LW.xlsm
    8.3 MB · Affichages: 35
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re Patrick

Tu as un fichier avec plus de 200000 lignes, je ne suis pas sûr que les combobox puissent supporter autant de données. En plus tu as le module de classe de Dranreb (Combobox_Liées). Donc, c'est soit Jacques soit Dranreb et pour celà il faut faire un nouveau formulaire. J'ai essaié d'afficher ton userform et chez moi Excel plante, et celui de Jacques met plusieures secondes à s'afficher; ceci est dû à cause du chargement des données dans celles-ci.


EDIT: J'ai fait un noveau test directement dans le fichier source sans ADO, avec une combo pas de souci, mais avec 3 Excel plante, malgré l'utilisation de Dictionary.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 111
dernier inscrit
Eric68350