ADODB.Connection ... DAO.Database ... ne fonctionnent plus avec Excel 2007 !?

Roland_M

XLDnaute Barbatruc
bien le bonjour à tous,

j'ai plusieurs routines avec ADODB.Connection ... DAO.Database ... etc.
dont qq unes tirées de chez J.Boisgontier, qui fonctionnaient très bien jusqu'à présent ...
mais ne fonctionnent plus à partir de 2007 !? même en modifiant Excel 8.0; avec Excel 12.0;
que faire, quelles modif apporter !? (je m'en sert même pour venir en aide sur le forum en les adaptant)

--------
Dim XlDb As DAO.Database, TbL As DAO.TableDef
Set XlDb = OpenDatabase(DirBaseFich$, False, True, "Excel 8.0;")
...
--------
Dim Cn As ADODB.Connection, Cat As ADOX.Catalog, Feuil As ADOX.Table
Set Cn = CreateObject("ADODB.Connection")
Set Cat = CreateObject("ADOX.Catalog")
Connect$ = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DirBaseFich$ & ";extended properties=""Excel 8.0;HDR=NO;IMEX=1"""
Cn.Open Connect$: Set Cat.ActiveConnection = Cn
...
======================================

autre petite question en passant sur ExecuteExcel4Macro pour lire une donnée dans un fichier fermé,
est'il possible d'appeler sans le nom de la feuille ?
exemple (ceci qui est ok)
V$ = ExecuteExcel4Macro("'c:\mes documents\[toto.xls]feuil1'!R1C1")
mais sans nommer Feuil1, seulement R1C1, qui serait bien entendu sur la première feuille.
comment le formuler ? (si toutefois c'est possible)
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : ADODB.Connection ... DAO.Database ... ne fonctionnent plus avec Excel 2007 !?

bien le bonjour à toi,

effectivement ! mais ça dépendra du classeur s'il n'a pas de fonction propre à 2007 !
-------------
et concernant ma deuxième question !?
sur ExecuteExcel4Macro pour lire une donnée dans un fichier fermé,
est'il possible d'appeler sans le nom de la feuille ?
exemple (ceci qui est ok)
V$ = ExecuteExcel4Macro("'c:\mes documents\[toto.xls]feuil1'!R1C1")
mais sans nommer Feuil1, seulement R1C1, qui serait bien entendu sur la première feuille.
comment le formuler ? (si toutefois c'est possible)
 

YANN-56

XLDnaute Barbatruc
Re : ADODB.Connection ... DAO.Database ... ne fonctionnent plus avec Excel 2007 !?

Bonjour Roland, Boisgontier et à ceux qui passeront par là,

Roland: Es-tu en réseau?

Car sinon, la lecture de fichiers fermés me semble peu utile.
Autant les ouvrir, pomper ce dont l'on a besoin et les refermer!

Il y a aussi que la méthode "ADO" a des contraintes peu bouffable genre Access!

J'ai aussi navigué avec "ExecuteExcel4Macro", mais ma conclusion est la même.
(Sauf que l'on n'a pas les contraintes de format du Classeur Source)

Juste pour partager ce que j'ai pu en déduire.

Amicalement,

Yann
 

Roland_M

XLDnaute Barbatruc
Re : ADODB.Connection ... DAO.Database ... ne fonctionnent plus avec Excel 2007 !?

bonjour à toi YANN,

non je ne suis pas en réseau et souvent ces routines ne sont pas pour moi !
c'est pour mon fils en entreprise qui lui est en réseau
et pour la recherche de données sur 2500 fichiers références
ExecuteExcel4Macro c'est tout même incomparable au point de vue rapidité !

mais je viens de trouver sur le net une routine qui va certainement solutionner tout mes problèmes d'un coup !
appel avec ou sans nom de feuille et fonctionne sur 2007 sur des fichiers xlsm !!! (je viens d'essayer)
je suis en train de l'adapter !
je peux même tirer un champ en bouclant par appel d'une cellule au coup séparée du range demandé exemple:
LigSourc1 = Range(Champ$).Row
ColSourc1 = Range(Champ$).Column
LigSourc2 = Range(Champ$).Rows.Count + LigSourc1 - 1
ColSourc2 = Range(Champ$).Columns.Count + ColSourc1 - 1
et dans les boucles de LigSource et ColSource > Cellule$ = Cells(LigSource, ColSource).Address

ceci dit, s'il faut tirer un trop grand volume de données, évidemment qu'il est préférable de charger le fichier !
je vois après essai en boucle sans charger ou en chargeant !?
 

YANN-56

XLDnaute Barbatruc
Re : ADODB.Connection ... DAO.Database ... ne fonctionnent plus avec Excel 2007 !?

Re Roland,

Je constate que tu maîtrises bien ton sujet, et que tu étais dans l'optique d'un réseau.

N'étant plus en entreprise et ne souhaitant plus de contacts; je ne pourrai pas faire de tests.

J'avais une autre solution de rapidité en créant des tableaux virtuels,
suite à une aide privée de Paritec.; mais pour 2500 Fichiers........ Ce n'est pas trop envisageable!!!

Un ou plusieurs Fichiers ouverts ficheraient le désordre.

Cela m'aura au moins permis de te saluer.

Amicalement, en te souhaitant belle réussite,

Yann
 

Roland_M

XLDnaute Barbatruc
Re : ADODB.Connection ... DAO.Database ... ne fonctionnent plus avec Excel 2007 !?

re:

ci-joint la routine dont je parlai précédemment ! Maître Hasco est passé par-là !
pour tout ceux que ça interressent ! façile à essayer et mettre en oeuvre !

suit ouvert pour toutes améliorations possible !
 

Pièces jointes

  • ADODB HacoRol.xls
    40.5 KB · Affichages: 158

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof