EFFECTUER DES IMPORTATIONS D'UNE BASE DE DONNÉE ACCESS VERS EXCEL EN VBA

cs_hdidan Messages postés 2 Date d'inscription dimanche 30 janvier 2005 Statut Membre Dernière intervention 26 juin 2005 - 26 juin 2005 à 13:13
turb0 Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 11 juin 2007 - 6 juin 2007 à 14:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/32315-effectuer-des-importations-d-une-base-de-donnee-access-vers-excel-en-vba

turb0 Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 11 juin 2007
6 juin 2007 à 14:23
Malheureusement je peux pas trop m'amuser avec ce genre de fichier sur le PC de la boite...

Mais si tu trouves une autre solution hesites pas a faire signe, ton code avait l'air interessant ;)
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012
6 juin 2007 à 13:33
Je pense que vous devez avoir un problème d'instalation du JET 3.5 de Microsoft.

Pour régler votre problème, il vaut mieux essayer de le réinstaller en le téléchargeant ici :

http://www.download.com/Microsoft-Jet-Database-Engine-3-5/3000-2114_4-4238277.html

Sinon, j'ai trouvé un article pour vérifier l'installation du pilote JET 3.5 chez Microsoft ici :

http://support.microsoft.com/kb/240377

Je pense que ça devrais suffire à résoudre votre problème.
turb0 Messages postés 10 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 11 juin 2007
6 juin 2007 à 11:15
Bin j'ai le meme soucis et meme en chargeant les differentes librairies ca ne marche pas.

J'ai essaye avec la version 3.5 et 3.6 ainsi qu'avec Microsoft DAO 2.5/3.5 Compatibility Library.
Toujours le meme message d'erreur...
cs_chico200987 Messages postés 92 Date d'inscription samedi 13 novembre 2004 Statut Membre Dernière intervention 26 septembre 2008
22 déc. 2006 à 19:15
Ben en faite c'est pour un autre problème mais c'est quand même de cette librairie dont j'ai besoin car c'est pour convertir un base access 2000 en 2003 et comme elle dépendait de cette librairieet c'est la seul qui permet la compatibilité :/ et je ne l'ai pas dans "OUTIL > references"
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012
19 déc. 2006 à 16:36
Tu le trouve dans le menu "OUTIL > Références..." de ton éditeur VBA dans Excel. Maintenant il y a eu de nouvelles version du DAO donc prend la plus avancée, se sera le mieux. (Acutellement sur ma machine je vois une version 3.6)
cs_chico200987 Messages postés 92 Date d'inscription samedi 13 novembre 2004 Statut Membre Dernière intervention 26 septembre 2008
19 déc. 2006 à 15:34
Bonjour, je voudrais savoir où trouver "Microsoft DAO 2.5/3.5 Compatibility Library" car je ne le trouve pas ! Merci :)
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012
12 janv. 2006 à 18:38
boudabbous_mohamed, as tu bien référencé dans ton projet la librairie "Microsoft DAO 2.5/3.5 Compatibility Library" ?
Si c'est pas ça, je ne vois pas d'où sa peut venir...
boudabbous_mohamed Messages postés 1 Date d'inscription mardi 27 décembre 2005 Statut Membre Dernière intervention 28 décembre 2005
28 déc. 2005 à 16:46
Merci pour le code publié.
J'ai essayé de tester ce code, je rouve l'erreur suivante au niveau de la ligne contenat cette instruction:
Set Db = DBEngine.OpenDatabase(FichierBaseDeDonneeMDB, False, False, "MS Access")
l'erreur signalée est la suivante:
"Un composant ActivX ne peut pas créer l'objet"
cs_Cath Messages postés 27 Date d'inscription samedi 13 avril 2002 Statut Membre Dernière intervention 26 novembre 2005
26 nov. 2005 à 10:31
Un grand merci à Squall pour ce code très pédagogique. Je l'ai utilisé, en tant que formateur, pour présenter DAO. L'exercice a été fort apprécié.

Bravo
Horatio
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012
1 août 2005 à 11:22
Andrieuremi, Je suis content que ma source te plaise mais malheureusement, je ne peux pas me pencher sur la gestion des mots de passe actuellement(manque de temps, tu comprends...).
Mais si tu veux la modifier et la compléter toi même, n'hésite pas. Je ne pense pas que l'ajout de la gestion des mot de passe doit être très difficile. Tu devrais surement trouver de l'aide sur ce site à ce sujet !

Tien moi au courrant si tu arrives à compléter le code !
andrieuremi Messages postés 14 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 21 juin 2007
28 juil. 2005 à 18:06
Je trouve ton code source parfait.
Cela fait des mois que je cherche une telle source.
Je voulais te demander si tu pouvais compléter cette source en gérant lors de l'ouverture de la base de données le mot de passe du fichier car ma base auquel se souhaiterais me connecter possède un mot de passe et le code source ne le gère pas. MERCI INFINIMENT!
pbrenas Messages postés 1 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 28 juin 2005
28 juin 2005 à 23:19
aprés avoir testé plusieurs méthodes, pour récupérer la totalité des enregistrement sélectionnés si le résultat à moins de 65534 enregistrements,
la fonction query d'excel est plus rapide:
connec = "ODBC;DSN=piloteodbc;UID=;PWD=1234;DBQ=\\SERVEUR\Mesdocs\sage;DefaultDir=;CODEPAGE=1252;" pour la liaison avec sage ligne 100
piloteodbc est crée dans la liste des bases personnelles dans outils d'administration , pilotes odbc
sel contient la requête SQL
A1 est la position de la première cellule de destination
With ActiveSheet.QueryTables.Add(Connection:=Connec, Destination:=Range("A1"))
.CommandText = Sel
.Name = ta
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = False
.Refresh BackgroundQuery:=False
End With
j'ai trouvé cette fonction en enregistrant une macro sur données, données externe, créer une requette.

Cela ne fonctionne pas pour écrire sur les base, les fonction ADO sont nécéssaire.
merci pour ce source trés bien commenté.
jmlucienvb Messages postés 129 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 12 février 2009
27 juin 2005 à 18:15
DAO ne suffit pas pour que access soit reconnu
Il faut aussi que la bibliothèque d'office soit déclarée...
Au bureau j'ai des codes simples quoi fonctionnenet en permanence pour les échanges excel access dans les deux sens en version 97...
Un petit mail je vous les envoie...
(jean-marc.lucien@acoss.fr)
Avant jeudi après je pars en congés.
Sinon ado n'est pas top avec office 97 mais après avec 2000 ou xp c'est bien plus simple
JM
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
27 juin 2005 à 15:40
Vous avez pensez à ADO ???
cs_hdidan Messages postés 2 Date d'inscription dimanche 30 janvier 2005 Statut Membre Dernière intervention 26 juin 2005
26 juin 2005 à 13:13
Je trouve ton code source intéressant. Moi aussi, j'ai un problème disons similaire au tien. Je cherche à importer des données Access sur Excel (ton code me donne des idées) ainsi que des données Excel sur Access. Pour cette 2ème partie, si tu peux m'être d'une aide quelle conque.
J'ai trouvé sur le site des codes mais que j'arrive pas à faire tourner : il reconnait pas Dim "MonAccess As New Access.Application" même si j'ai ajouté le microsoft DAO.
Rejoignez-nous