1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| Private Sub Commande0_Click()
Dim appExcel As Excel.Application
Dim wbExcel As Excel.Workbook
Dim wsExcel As Excel.Worksheet
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim r As Long
' Connexion à la base Access
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & "Data Source=C:xxxxxxxx.accdb"
' Ouvre un recordset
Set rs = New ADODB.Recordset
rs.Open "xxxxx", cn, adOpenKeyset, adLockOptimistic, adCmdTable
Set appExcel = CreateObject("Excel.Application")
Set wbExcel = appExcel.Workbooks.Open("C:xxxxxx")
Set wsExcel = wbExcel.Worksheets(2)
For r = 2 To Selection.SpecialCells(xlCellTypeLastCell).Row
' Réalise la boucle jusqu'à la dernière cellule de la plage utilisé
If Range("A" & r) & "" = "" Then
Exit For 'Sort si la 1ère colonne est vide
End If
With rs
.AddNew ' Crée un nouvel enregistrement
' Renseigne les valeurs des champs
.Fields("Référence") = Range("D" & r).Value
etc....
.Update ' MAJ du nouvel enregistrement
End With
Next r 'fin de la boucle For
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
'fermeture du fichier et de la connection à la BD
wbExcel.Close 'Fermeture du classeur Excel
appExcel.Quit 'Fermeture de l'application Excel
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing
End Sub |
Partager