Hello,
DAO sait très bien le faire aussi :
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
| Sub DAOUpdateExcelFile(ByVal strFullPath As String, _
ByVal strTab As String, _
ByVal RowIndex As Long, _
ByVal ColumnIndex As Long, _
ByVal setValue As Variant)
' Ajoutez la référence DAO
Dim db As DAO.Database
Dim rec As DAO.Recordset
' on ouvre le fichier excel en tant que base de données DAO
Set db = OpenDatabase(strFullPath, False, False, "Excel 8.0;")
DoEvents
' on ouvre un recordset sur un onglet comme on le ferait
' sur une table Access
' En DAO, les tables sont les onglets avec un $ final
Set rec = db.OpenRecordset(strTab & "$", DAO.dbOpenDynaset)
' on se déplace sur l'enregistrement souhaité
rec.Move RowIndex - 1
' on édite l'enregistrement
rec.Edit
rec.Fields(ColumnIndex - 1).Value = setValue
rec.Update
' on sauvegarde
' fermez les objets
rec.Close
db.Close
' libérez les objets !
Set db = Nothing
Set rec = Nothing
End Sub |
Un exemple :
daoupdateexcelfile "c:\temp\db.xls","Feuil1",12,5,999
Permet de passer la valeur de la cellule E12 de l'onglet "Feuil1" à 999
Partager