Importation automatique de données de excel vers access

Résolu
amirdiakite Messages postés 8 Date d'inscription mercredi 19 janvier 2011 Statut Membre Dernière intervention 23 mai 2012 - 17 mai 2012 à 16:04
amirdiakite Messages postés 8 Date d'inscription mercredi 19 janvier 2011 Statut Membre Dernière intervention 23 mai 2012 - 18 mai 2012 à 12:11
Bonjour,
Je suis un peu nouveau sur le forum. Au fait je développe actuellement une petite application en VBA pour importer automatiquement des données d’Excel vers Access. Je suis débutant en VBA, mais en cherchant sur le net j’ai pu écrire un code. J’ai un petit souci. Lorsque je compile le code que j'ai écris me génère une erreur du genre "Type défini par l'utilisateur non défini" et le curseur se pointe sur cette partie de mon code « cn As ADODB.Connection ». Quelqu'un pourrait t-il m'aider. Voici mon code complet en VBA que j’ai écris:
Sub ADOFromExcelToAccess()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Chemin = ActiveWorkbook.Path
Source = Chemin & "\gestion stock.mdb"
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " & Source & ";"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "[Etat stock]", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table
r = 2 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0 ' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("Code article") = Range("A" & r).Value
.Fields("Magasin") = Range("B" & r).Value
.Fields("Emplacement") = Range("C" & r).Value
.Fields("Ref GE/Origine") = Range("D" & r).Value
.Fields("Libelle") = Range("E" & r).Value
.Fields("Qté en stock") = Range("F" & r).Value
.Fields("Qté mini") = Range("G" & r).Value
.Fields("Unité de mesure") = Range("H" & r).Value
.Fields("Coût unitaire moyen") = Range("I" & r).Value
.Fields("Coût total") = Range("J" & r).Value
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub

3 réponses

amirdiakite Messages postés 8 Date d'inscription mercredi 19 janvier 2011 Statut Membre Dernière intervention 23 mai 2012
18 mai 2012 à 12:11
@Jack : Finalement j'ai trouvé la solution pour l'erreur Variable non défini" et cette partie du code est surligné "Chemin = ActiveWorkbook.Path". Peux tu me conseiller une documentation ou des liens internet pour la compréhension et la gestion des erreurs de compilations. Parce c'est une autre erreur qui s'affiche, elle se présente ainsi : Erreur d’exécution '3265' Erreur défini par l'application ou par l'objet. Merci d'avance pour votre collaboration.
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 mai 2012 à 00:24
Salut

Comme le dit l'erreur, les objets de la librairie ADODB sont inconnus de VB.
Il suffit donc d'aller dans les références du menu Outils de l'IDE de VBA et de chercher puis cocher "Microsoft AcriveX Data Objects X.X Library", où X.X représente la version à choisir (par exemple 2.8 ou 6.0)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
amirdiakite Messages postés 8 Date d'inscription mercredi 19 janvier 2011 Statut Membre Dernière intervention 23 mai 2012
18 mai 2012 à 11:51
Merci Jack pour ton aide. Je suis vraiment débutant sur VBA donc il y a beaucoup de subtilités que je ne maîtrise pas. Je compile encore mon code j'ai cette erreur "Variable non défini" et cette partie du code est surligné "Chemin = ActiveWorkbook.Path". Je suis en train de chercher mais si vous pouviez m'aider ça me ferait gagner en temps. je travaille sur un projet dont le délai est un peu court.
0
Rejoignez-nous