Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

qu'est ce qui cloche ???

1 réponse
Avatar
Rémi
Bonjour,
je reviens à la charge avec mes histoires d'échanges de données entre excel
et access
j'ai trouvé ce code sur http://ericrenaud.free.fr/droitedao.htm#Sub4 dont
par ailleurs je remercie l'auteur, mais il y a deux erreurs que je ne sais
résoudre
Quelqu'un pourrait il m'aider svp ?

--------------------------------------
Sub WritingWorksheetData_DAO()

Dim Plage As Range

Dim Array1 As Variant

Dim x As Variant

Dim Db1 As Database---------> erreur de compilation : type défini par
l'utilisateur non défini

Dim Rs1 As Recordset---------> erreur de compilation : type défini par
l'utilisateur non défini

' Ouverture de la base de données Commandes.mdb

Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path & "\Commandes.mdb" )

' Ouverture de la table Factures

' Un objet Recordset représente les enregistrements d'une table

Set Rs1 = Db1.OpenRecordset( "Factures" , dbOpenDynaset)

' Détermination de la taille de la plage à envoyer vers Access

Set Plage = Worksheets( "DAOSheet" ).Range(
"A1" ).CurrentRegion.Offset( 1 , 0 )

Set Plage = Plage.Resize(Plage.Rows.Count - 1 , Plage.Columns.Count)

Plage.Select

' Lecture de la plage pour renvoyer une valeur contenant un tableau

Array1 = Plage.Value

' Ecriture des données depuis Excel vers les enregistrement de la table
Factures

For x = 1 To UBound (Array1, 1 )

With Rs1

.AddNew

.Fields( "NoFacture" ) = Array1(x, 1 )

.Fields( "Client" ) = Array1(x, 2 )

.Fields( "Date" ) = Array1(x, 3 )

.Fields( "Solde" ) = Array1(x, 4 )

.Update

End With

Next

' Fermeture de la base Commandes.mdb

Db1.Close

' Effacement des données copiées vers la base (sauf les titres)

With Selection.CurrentRegion

Intersect(.Cells, .Offset( 1 )).Select

End With

Selection.ClearContents

End Sub

1 réponse

Avatar
FdeCourt
Salut,

Dans VBE, sous Outils > References, il faut que tu coches "Microsoft
DAO 3.6 Object Library" dans la liste

Cordialement,

F.