Lire dans classeur fermé

Début-lent

XLDnaute Nouveau
Bonjour à tous,
je débarque dans le forum et comme vous pouvez lire dans mon nom... je vais pas vite!!!
Ca fait 2 jours que je surf (ou plutôt patauge ce serait plus conforme à la réalité)
sur le net pour résoudre mon problème...

Je rève d'une fonction "générique" (ou macro) qui pourrait lire une cellule ou plage de cellules dans un classeur fermé, on pourrait l'appeller comme ça :
LireClasseurFermé(chemin;fichier;onglet;plage) avec
  • dans chemin on lui passerait le string de l'arborescence
  • dans fichier le string du nom de fichier (avec ou sans ".xlsx ou m ou rien...à voir)
  • dans onglet idem
  • dans plage on lui passerai en string "A1" ou "A12:B15" pour les grandes plages (pas que de l'altalantique...)
et en retour on aurait le résultat.... pas mal !!!
Ca doit bien exister quelque part .. mais je n'ai pas trouvé!!!
ça devrait tourner autour de "Indirect.ext()"
mais voilà pour rendre la fonction générique bonjour pour moi !!
alors si qqun a qqchose
je suis preneur
Merci à tous
 

Début-lent

XLDnaute Nouveau
Yes... merci beaucoup pour la rapidité.
Je vais essayer de comprendre et de mettre en oeuvre illico!!.

Ca y est. Je viens de tester et ça roule, bon j'ai pas tout compris et m^me assez peu de chose...
au point que je ne sais même pas comment la modifier pour lui faire ramener qu'une seule cellule...
je n'ose pas toucher dans les 2 boucles afin que ça sorte à la 1ère itération et m^me sans itérer du tout...
en tout cas merci beaucoup
ca répond à la demande
mais si j'ai bien compris je ne peux que l'activer avec un bouton pour lancer la macro
et je comprend maintenant la problématique de la cellule de destination...
ce n'est pas une fonction personelle que je peux écrire direct dans une cellule comme ça :
=LireClasseurFermé("C:\Prive\Outils\Excel", "EssClassFerm", "Feuil1", "A1")
et dans ce cas là, la destination ne se posait pas...
Mais je vais utiliser avec Macro c'est pas mal non plus!!!
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Pierre, le Forum,

@Pierre
Ton fichier fonctionne super bien, encore un grand merci.
Je reviens sur ce fil pour un besoin d'une variante si cela est possible.
L'importation des infos du fichier fermé se fait (ce qui est logique); à l'identique du fichier d'importation.
c’est-à-dire colonnes à côté les unes des autres

Dans mon travail, j'importe des données de plusieurs classeurs fermés
Afin de de pas alourdir mon fichier de destination
Donc, pour éviter la création de plusieurs onglets d'importation + un onglet de regroupement
J'ai besoin d'importer les infos par classeur, les unes au dessous des autres
classeurs : tous même structure,même nom d'onglet


J'ai tenté quelques codes sans succès.
Si pas trop compliqué, pourrais-tu solutionner mon souci ?
Comme présenté dans le classeur test joint onglet "Résultat attendu".

Un grand merci encore une fois :)

Amicalement,
lionel,
 

Pièces jointes

  • Démo_Fct_Générique_2.xlsm
    36.1 KB · Affichages: 110

C.H.U

XLDnaute Nouveau
Hello,


D'abord bravo pour la fonction. Ca m'a l'air bien pratique.

Sinon il y a aussi la fonction Pull de Wilson So. Elle est flexible car elle fonctionne comme indirect (on lui indique les composantes du chemin et elle va trouver les valeurs) mais elle est assez lourde en terme d'execution. Si on peut flexibiliser celle-ci je suis preneur aussi :)

Bonne année à tous !!!!
 

Dudu2

XLDnaute Barbatruc
Bonjour,
Ötez-moi d'un doute...
Ce Tquery de l'espace, il ouvre bien le fichier fermé d'une manière ou d'une autre pour en lire le contenu, non ?
Ou bien il est magique et sait lire dans les yeux de Windows ?
S'il ouvre le classeur, pourquoi utiliser le Tquery de l'espace au lieu d'un simple Workbooks.Open ?
Merci pour les éclaircissements.
D.
 

James007

XLDnaute Barbatruc
Bonjour à tous,

A côté de la solution ADO proposée par Pierre, il existe des fonctions personnalisées assez anciennes ...

Elles permettent d'extraire des valeurs ..SANS OUVRIR LE FICHIER SOURCE ...

Les plus connues sont : La fonction Pull concue par Harlan Grove et la fonction GetValue de John Walkenbach (tip82)

@Dudu2 ... effectivement ... il y a quelque chose de Magique à extraire des valeurs SANS Workbooks.Open ... !!!o_O
 
Dernière édition:

laurent950

XLDnaute Accro
Bonjour tatiak, le forum,

Merci tatiak de m'avoir donné l'idée d'avoir pu travailler avec les requêtes SQL en me servant d'excel et vos nombreux exemples. C'est en effet très très puissant sur des très gros tableaux excel !

j'ai eu l'occasion de vous croiser sur ce forum et je vous remercie de m'avoir aidé dans le passé et peux être le futur pour profiter de votre savoir et professionnalisme, Je vous souhaite une bonne année tatiak

Laurent950
 

Discussions similaires