Export feuille excel vers access

  • Initiateur de la discussion Bill
  • Date de début
B

Bill

Guest
SAlut

Je voudrais exporter une feuille excel vers access sans ouvrir ce dernier et purger les informations de la feuille excel une fois transferés.

Merci pour toutes informations

A+
 

Davidc57

XLDnaute Occasionnel
Bonsoir Bill,

J'ai une solution, un peu longue à développer. Mais très efficace !!

1 - On créé la base .mdb si elle n'existe pas.
2 - On créé, la table access si elle n'existe pas
3 - On créé les champs si ils n'existent pas (cas des mises à jour)
4 - On définit les clés dans la base access
5 - On insère tous les enregistrements avec des requêtes SQL
6 - On ferme la base
7 - On purge la feuille excel.

Si c'est ce que tu recherches, on peut en reparler .

A bientôt.
David
 

Davidc57

XLDnaute Occasionnel
Bill,

Quand je parle d'ouverture de la base access, je ne parle pas de l'ouverture du fichier. Le programme Access ne sera en aucune façon ouvert dans ma solution.

C'est simplement une commande VBA qui va s'ouvrir une connexion en arrière-plan avec la base :

Set SGBD = OpenDatabase(RepApp & DbName)

Et la commande de fermeture :

SGBD.Close

En ce qui concerne l'automatisme, c'est bien simple, un seul clic est nécessaire.

Si tu veux en savoir plus, on peut communiquer par message privé dans un premier temps afin de bien comprendre ton besoin. Et ensuite construire une solution qui pourrait faire l'objet d'un nouveau tutorial. J'en ferai la proposition le moment venu.

Personnellement, je n'aime vraiment pas la saisie dans Access. Excel est bien meilleur !!

Donc je saisi dans Excel mes informations.

J'écris dans le fichier excel, toutes les informations dont le programme VBA aura besoin pour construire et alimenter la base :
- son nom
- sa table (si plusieurs table, alors plusieurs fichiers excel source)
- ses champs avec leur type et taill
- les clés de la table


A bientôt,
David







Bonsoir,
David
 

MichelXld

XLDnaute Barbatruc
bonsoir Bill , bonsoir David


Si tu veux en savoir plus, on peut communiquer par message privé dans un premier temps afin de bien comprendre ton besoin.

l'objectif de ce forum est le partage de connaissance et non la résolution des problemes en privé




ensuite construire une solution qui pourrait faire l'objet d'un nouveau tutorial. J'en ferai la proposition le moment venu.

https://www.excel-downloads.com/thr...iltres-variables-fichiers-fermes-acces.92374/

Lien supprimé


bonne soirée
MichelXld

Message édité par: michelxld, à: 06/04/2006 21:23
 

Davidc57

XLDnaute Occasionnel
Bonsoir Michel,

Merci pour les liens qui m'ont permis de découvrir une autre fonctionnalité du site. Pas mal, tous ces exemples.

Je suis tout à fait conscient du but du forum, et en proposant un nouveau tutorial, je pense que je partagerai l'information.

Cordialement,
David
 
B

Bill

Guest
Désolé je reviens à la charge
Sub exportDonnees_Excel_Vers_Access()
'ajouter un enregistrement dans une table Access
'necessite d'activer la reference Microsoft ActiveX Data Objects x.x Library
Dim Conn As New ADODB.Connection
Dim rsT As New ADODB.Recordset
Dim maTable As String
maTable = 'Table1'
With Conn
.Provider = 'Microsoft.JET.OLEDB.4.0'
.Open 'C:\\Documents and Settings\\michel\\Excel\\maBase_V01.mdb'
End With
With rsT
.activeConnection = Conn
.Open maTable, lockType:=adLockOptimistic
End With
With rsT
.addNew
.Fields('Nom').Value = Range('A1')
.Fields('prixUnit').Value = Range('B1')
.Fields('Matricule').Value = Range('C1')
.Update
End With
rsT.Close
Conn.Close
End Sub

Avec cette macro j'ai une erreur de compilation
Pourquoi??
Merci [file name=exporttoaccess.zip size=17574]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exporttoaccess.zip[/file]
 

Pièces jointes

  • exporttoaccess.zip
    17.2 KB · Affichages: 97

MichelXld

XLDnaute Barbatruc
bonjour Bill , bonjour David

Bill , tu n'as pas activé la référence 'Microsoft ActiveX Data Objects x.x Library' dans le classeur joint

dans l'editeur de macros
Menu Outils
References
Coche la ligne 'Microsoft ActiveX Data Objects x.x Library'
(xx.x depend de la version installée sur ton poste)
Clique sur Ok pour valider


remarque :
attention à bien définir le chemin de la base dans ta macro :
'.Open '\BD1.mdb'
risque de ne pas fonctionner


bon week end
MichelXld
 
Dernière édition:
B

Bill

Guest
BOnsoir

je suis arrivé à ce que je voulais:
une feuille excel qui se vide dans une base access sans l'ouvrir.

C'est un peu du bricolage mais ca marche

merci michel ;)

Bon week-end [file name=exporttoaccess_v2.zip size=22114]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exporttoaccess_v2.zip[/file]
 

Pièces jointes

  • exporttoaccess_v2.zip
    21.6 KB · Affichages: 119

MichelXld

XLDnaute Barbatruc
bonjour Bill

merci pour ton dernier classeur qui fonctionne tres bien
si cela t'interesse , tu touveras ci dessous une adaptation de ta procédure pour boucler directement sur la plage de cellules à exporter ( sans passer par j = '16400')


Sub exportDonnees_Excel_Vers_Access_V03()
'ajouter un enregistrement dans une table Access
'necessite d'activer la reference Microsoft ActiveX Data Objects x.x Library

' On déclare les variables
Dim Conn As New ADODB.Connection
Dim rsT As New ADODB.Recordset
Dim maTable As String
Dim i As Integer
Dim j As Integer

' j derniere ligne non vide dans la colonne A
j = Range('A65536').End(xlUp).Row
maTable = 'Table1'

With Conn
.Provider = 'Microsoft.JET.OLEDB.4.0'
.Open 'C:\Documents and Settings\RV\Bureau\toto\macroexecl\export liste excel vers Access\BD1.mdb'
End With

With rsT
.activeConnection = Conn
.Open maTable, lockType:=adLockOptimistic
End With

With rsT

For i = 1 To j 'boucle sur les lignes du classeur

.addNew
.Fields('C1').Value = Cells(i, 1).Value 'Cells( Numero Ligne , Numero Colonne )
.Fields('C2').Value = Cells(i, 2).Value
.Fields('C3').Value = Cells(i, 3).Value
.Update

Next i

End With
rsT.Close
Conn.Close

Rows('1:' & j).Delete Shift:=xlUp

End Sub





bon week end
MichelXld
 
Dernière édition:

garn

XLDnaute Nouveau
Re : Export feuille excel vers access

Bonjour,

connaissez vous les changements a effectuer dans ce code si l'on souhaite se connecter a un projet access ( fichier .adp ) et pas a une base ( . mdb )

j'ai en effet une erreur " format de base de données non reconnu " et je ne sais pas comment la corriger

merci d'avance
 

Discussions similaires

Réponses
16
Affichages
529
Réponses
1
Affichages
206

Statistiques des forums

Discussions
312 266
Messages
2 086 652
Membres
103 353
dernier inscrit
jerem'