Private Sub AjoutDansTableAccess(NomTable As String)
Dim ConnectBD As Object
Dim Rs As Object
Dim AppExcel As Object
Dim Classeur As Object
Dim Feuille As Object
Dim I As Integer
MyPath = ActiveWorkbook.Path
Set Classeur = ThisWorkbook 'Ligne ajoutée par hasco
Application.StatusBar = "Ouverture du classeur Excel contenant les données à exporter ..."
' Les deux lignes suivante sont inutiles puisque la procédure
' est appelé depuis le classeur Clients
'Set AppExcel = CreateObject("Excel.Application")
'Set Classeur = AppExcel.Workbooks.Open(MyPath & "\Clients.xls")
Set Feuille = Classeur.Worksheets("Liste des clients") 'Adapter le nom de la feuille
'Connection à la base Accesse
ConnecterBase ConnectBD, Rs
'Inscrit les valeurs de la feuille Excel dans la table ListeClients
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM " & NomTable, ConnectBD
'Ajout des enregistrements situés à partir de
' la ligne 2 afin d'éviter les entêtes de colonnes
Nbrecords = Feuille.Range("A65536").End(-4162).Row - 1
MsgBox Nbrecords
For I = 2 To Feuille.Range("A65536").End(-4162).Row
'Application.StatusBar = "Ajout de l'enregistrement " & I - 1 & " sur " & Nbrecords & _
'" dans la table Clients ..."
'Si la cellule 1 de la ligne n'est pas vide
If Cells(I, 1).Text <> "" Then
.AddNew
.Fields("Client") = Feuille.Cells(I, 1)
.Fields("Rue") = Feuille.Cells(I, 2)
.Fields("Adresse") = Feuille.Cells(I, 3)
.Fields("CPVille") = Feuille.Cells(I, 4)
.Fields("Pays") = Feuille.Cells(I, 5)
.Update
End If
Next I
End With
Application.StatusBar = ""
ConnectBD.Close
Classeur.Close
AppExcel.Quit
' Met fin à l'association entre la variable et l'objet associé
'Set AppExcel = Nothing
'Set Classeur = Nothing
'Set Feuille = Nothing
Set ConnectBD = Nothing
Set Rs = Nothing
End Sub
Private Sub ConnecterBase(ConnectBD As Object, Rs As Object)
MyPath = ActiveWorkbook.Path & "\"
' Déclaration de référence d'objet à une variable
Set ConnectBD = CreateObject("ADODB.Connection")
Set Rs = CreateObject("ADODB.Recordset")
With ConnectBD
.Provider = "Microsoft.Jet.OLEDB.4.0"
'Ici le chemin et le nom de la base Access
.ConnectionString = MyPath & "Clients.mdb"
.Open
End With
End Sub