Recuperer les donnees d'une feuille

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

Bubulle

Guest
Salut,
Je voudrais faire une macro excel qui prend les enregistrements de la feuille courante et les copie dans une base access.
Malheureusement j'ai decouvert le vb, il y a 2 jours alors c'est un poil galere :eek:) Je sais comment me connecter et inserer des donnees dans une base access via ADO, mais pas comment recuperer le contenu de la feuille courante.
Comment mettre les donnees de la feuille excel courante dans un recordset ( ou autre chose!) ?
 
W

wally

Guest
Bonjour Bubulle et le forum,

Tu peux t'inspirer de cet exemple, qui ajoute des enregistrements dans une table d'une base Access, via un recordset ADO, le tout à partir de la feuille Excel courante :

Sub Export_Excel_Access_ADO()

Dim oRge As Range

Dim Cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset

'Ouvrir la connexion ADO
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MaBase.mdb"

'Ouvrir le recordset
Rs.Open "MaTable", Cn, adOpenDynamic, adLockOptimistic, adCmdTable

With ActiveSheet
'Parcourir les cellules de la colonne A
For Each oRge In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
With Rs
'Ajouter un nouvel enregistrement
.AddNew
'Valoriser les champs du nouvel enregistrement
.Fields("MonChamp1") = oRge.Value 'Colonne A -> MonChamp1
.Fields("MonChamp2") = oRge.Offset(0, 1).Value 'Colonne B -> MonChamp2
.Fields("MonChamp3") = oRge.Offset(0, 2).Value 'Colonne C -> MonChamp3
'Mettre à jour le nouvel enregistrement
.Update
End With
Next oRge
End With

'Fermer le recordset
Rs.Close

'Fermer la connexion ADO
Cn.Close

'Libérer les ressources
Set Rs = Nothing
Set Cn = Nothing

End Sub

Il suffit de coller ce code dans un module et de l'adapter à tes besoins.

Ne pas oublier d'ajouter la référence ADO (dans l'éditeur VBA : Outils > Références > Sélectionner "Microsoft ActiveX Data Objects 2.X Library")


Slts

wally
 

Discussions similaires

Statistiques des forums

Discussions
312 355
Messages
2 087 560
Membres
103 590
dernier inscrit
Picsou74