Hello

Je dois réaliser une formulaire permettant de passer des données de Excel vers Access. Il s'agit de 12 fichiers excel qui tous la même structures, chacun ayant plus ou moins le un nombre de lignes respectifs (80 pour le fichier 1 , 50 pour le 2 ... )

Sous Access j'ai un formulaire qui est composé de ceci :

- 1 barre de texte qui reçoit l'adresse du fichier excel à importer (nom de cette barre : chemin_d_importation )
- 1 bouton permettant d'afficher une boite de dialogue qui permet de chercher le fichier à importer (nom du bouton de parcours : parcourir )
- 1 bouton permettant de valider et qui fait exécute le transfert de excel vers access (bouton nommé : importer )

Voici le code que j'ai programmé (en parti ) car une partie vient de code que j'ai glaner à droite à gauche pour faire mon programme.

Je ne connais absolument pas la programmation système VBA , j'utilise ACCESS uniquement pour du requetage.

Code vba codé pour le bouton "parcourir" :

/ ! \ code venant en partie d'un site anglophone d'ou l'anglais dans celui ci , a noter aussi qu'il y a des explications en français pour expliquer ce que je souhaite faire exactement / ! \

Code VBA : 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
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
71
72
73
74
75
76
77
78
79
80
81
82
83
Option Compare Database
 
Option Explicit
 
Private Sub parcourir_Click()
 
Me.chemin_d_importation = OuvrirUnFichier(Me.Hwnd, "Données à importer", 1)
 
End Sub
 
Sub ADOFromExcelToAccess()
 
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
 
Dim db As Database
Dim rs_stokage As Recordset 
 
 
DoCmd.TransferSpreadsheet acImport, 10, "STOCKAGE_IMPORTS", Forms!menu_importation!chemin_d_importation, True, ""
 
Set db = CurrentDb
Set rs_stokage = db.OpenRecordset("STOCKAGE_IMPORTS") ' STOCKAGE_IMPORTS est une table access existante et vide ou je souhaite stocker mes donner au fur et à mesure que je vais chercher les données de excel
 
 
' ici le code que j'ai trouvé sert à aller chercher les données du fichier avant transfert ( si c'est bien cela ??????? ) 
 
' exports data from the active worksheet to a table in an Access database this procedure must be edited before use
 
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=Forms!menu_importation!chemin_d_importation;"
 
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "STOCKAGE_IMPORTS", cn, adOpenKeyset, adLockOptimistic, adCmdTable
 
' all records in a table
 
    r = 20 ' the start row in the worksheet
    Do While Len(Range("A" & r).Formula) > 0
    ' repeat until first empty cell in column A
    With rs
    .AddNew ' create a new record
 
    ' add values to each field in the record  
 
    ' c'est toutes les colonnes présentent le fichier excel 
 
    .Fields("LIB_NOM_PAT_IND") = Range("A" & r).Value
    .Fields("LIB_PR1_IND") = Range("B" & r).Value     '
    .Fields("LIB_AD2") = Range("C" & r).Value
    .Fields("COD_COM") = Range("D" & r).Value
    .Fields("LIB_COM") = Range("E" & r).Value
    .Fields("COD_DEP") = Range("F" & r).Value
    .Fields("NUM_TEL") = Range("G" & r).Value
    .Fields("NUM_TEL_PORT") = Range("H" & r).Value
    .Fields("ADR_MAIL") = Range("I" & r).Value
    .Fields("COD_BAC") = Range("J" & r).Value
    .Fields("LIB_ETB") = Range("K" & r).Value
    .Fields("LIB_AD1_ETB") = Range("L" & r).Value
    .Fields("LIB_AD2_ETB") = Range("M" & r).Value
    .Fields("COD_COM_ADR_ETB") = Range("N" & r).Value
    .Fields("VILLE") = Range("O" & r).Value
    .Fields("Facebook") = Range("P" & r).Value
    .Fields("Viadeo") = Range("Q" & r).Value
    .Fields("COD_IND") = Range("R" & r).Value
    .Fields("COD_NNE_IND") = Range("S" & r).Value
 
    ' add more fields if necessary...
 
    .Update ' stores the new record
    End With
    r = r + 1 ' next row
    Loop
 
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
    End Sub
 
 
' ce code VBA marche en partie la boite de dialogue pour chercher le fichier s'ouvre et le nom du fichier et bien référencé dans la barre texte , par contre j'ignore si il y a des erreurs ou des manques vu que je connais pas la programmation système VBA :oops:

Je doit ensuite faire la programmation du bouton "importer " qui lui envoie automatiquement les données vers la table existante. Pour ce second bouton , j'ignore ce que je dois faire et comment procéder. Je connais aucunement la programmation système VBA .

Merci d'éclairer ma lanterne