Bonjour,

J'ai déjà posté ce message sur le forum Access, mais malheureusement personne n'a su m'aider, et on m'a redirigé vers ce forum ci.


Je voudrais pouvoir lancer une macro à partir d'Excel, de manière à ce que les informations qui se trouvent dans mon fichier Excel soient envoyés vers mon fichier Access. Cependant, je ne veux récupérer que certaines lignes du fichier Excel, afin de les rajouter (à la suite des lignes déjà existantes des tables Access) dans différentes tables et différents champs.

En surfant sur votre forum, j'ai trouvé ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Private Sub Commande0_Click()
Dim oApp As Excel.Application
Dim oWkb As Excel.Workbook
Dim oWSht As Excel.Worksheet
 
Set oApp = CreateObject("excel.application")
Set oWkb = oApp.Workbooks.Open("NOM DE TON FICHIER EXCEL")
Set oWSht = oWkb.Worksheets("NOM DE TA FEUILLE")
'première ligne ou tu commence ton import
i = 2
 
'pour éviter les messages lors de l'ajout des enregistrements
DoCmd.SetWarnings False
 
'tant que la cellule n'est pas vide
While oWSht.Range("B" & i).Value <> ""
 
  cSQL = "insert into [NOM TABLE] ( [Nom Champs]) values (" & Chr(34) & oWSht.Cells(i, 7) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 8) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 10) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 11) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 14) & Chr(34) & ")"
'La fonction chr(34) est une fonction VBA qui renvoie un caractère en fonction du code ASCII. ici 34. Chr(34) nous renvoie un guillemet.
' Utile au cas où une cellule serai vide et ainsi importer une chaine vide "". sinon ca générerait une violation SQL.
 
 
'exécute la requète
  DoCmd.RunSQL cSQL
 
 
  i = i + 1
Wend
 
DoCmd.SetWarnings True
End Sub
Si j'ai bien compris, ce code permet d'importer à partir d'Access des informations provenant de Excel. Moi, je voudrais pouvoir avec un code SQL faire cela dans l'autre sens: rajouter dans ma base Access (sans l'ouvrir nécessairement) les informations que j'aurais dans ma feuille Excel. N'étant pas très familier avec Access en plus, je m'y perds vraiment...

Comment faire ?
Quelqu'un aurait-il une idée ?

Merci d'avance !