Consolidation factures par ADO

T

TETOCA

Guest
Bonjour à toutes et à tous

Grace à vous tous et aux différents fils je me suis fait une consolidation de factures (rien de commerciel, je suis à la retraite).

Premier jet avec des formules dans les cellules du récapitulatif faisant référence à des cellules dans des fichiers fermés, puis vous m'avez fait découvrir ADO (merci entre autres à mimi pour son exemple) d'où deuxième jet avec ADO.

Je pinaille peut-être un peu mais tant pour éclaicir mes idées que pour m'améliorer, je serai reconnaissant à la personne qui pourra confirmer ou infirmer et améliorer ma façon de faire.

Si je ne prends qu'une cellule dans la feuille source, je récupère bien sa valeur par 'Rs.Fields(0).Name' si c'est du texte sinon 'F1' quand c'est du numérique (Je pense que ce doit être le nom de la table) et si j'essaie avec 'Rs.Fields(0).Value' il me dit 'EOF etc...' car je pense encore qu'il considère que la table est vide.

Je fais donc de la façon suivante qui ne me satisfait qu'à moitié :

Je déclare 2 cellules dans la feuille source et par 'Rs.Fields(0).Value'
je récupère la valeur de la deuxième et ça marche mais je devrais pouvoir faire mieux.

Merci à toutes et à tous pour vos précieux conseils et bonne fin de semaine. F JP
 

michel_m

XLDnaute Accro
Bonjour Tetoca,

Dans le cas où tu ne vas chercher qu'une seule cellule, tu n'es pas obligé de sortir l'artillerie ADO car tu peux utiliser le macro Excel4 dite de 'Walkenbach', par exemple:

Sub chercher_xl4()
' auteur présumé: John Walkenbach
Dim chemin As String
chemin = ''' & ActiveWorkbook.Path
Range('cible') = ExecuteExcel4Macro(chemin & '\\fermé_ado.xls'!source')
End Sub


Dans cet exemple, les classeurs sont dans le m^me dossier et la cellule dans le classeur fermé (fermé_ado.xls) est nommée (+ facile à trimbaler que par adresse R1C1)

A+
Michel_M
 

michel_m

XLDnaute Accro
Re,


Ben.... Je te joins une démo basique sur ADO et sur cette macro

A toi de voir si ca t'est utile

Bonne soirée

Michel_M

[file name=basique.zip size=49214]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/basique.zip[/file]
 
Dernière édition:

michel_m

XLDnaute Accro
Re,

Heureux pour toi que ca ait pu fonctionné.

Je te joins en petit supplément gratuit luxueusement illustré l'utilisation d'ADO avec Word ( à installer dans le même répertoire que basique).

Concernant ta question d'origine, tu as dû ne pas déclaré HDR dans ta connexion, et dans ce cas VBA considère que la source comporte une étiquette (ou un nom de champ si tu préfères) il faut écrire ceci pour signaler qu'il n'y a pas d'étiquette (lorsqu'on a une seule cellule par exemple)

Set Cn = New ADODB.Connection
Cn.Open 'Provider = Microsoft.Jet.OLEDB.4.0;' & _
'data source=' & Fichier & ';' & _
'extended properties=''Excel 8.0;HDR=No;'';'
' la mention HDR=no indique que l'on travaille sans etiquette de database.

Bon dimanche

Michel_M [file name=adodemo_20051016121425.zip size=14807]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/adodemo_20051016121425.zip[/file]
 
Dernière édition:
T

TETOCA

Guest
Re

Alors là, c'est le super pied. Toutes les réponses. Non seulement pour ADO mais aussi pour la macro Excel4 qui simplifie grandement ce que je faisais de façon complexe.

Merci, trois fois merci à toi, Michel, et à tous ceux (et celles) qui répondent toujours présent sur ce forum.

Bonne fin de dimanche. F JP
 
T

TETOCA

Guest
Bonsoir Michel

Une dernière question, si vous repassez par là, et ensuite je vous laisse tranquille.

Où peut-on trouver l'aide ADO qui s'ouvre à blanc quand on la demande ?

Merci pour tout et bonne semaine. F JP
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 325
Membres
103 516
dernier inscrit
René Rivoli Monin