Bonsoir,

Je voudrais utiliser le code qu’a communiqué Marot_r sur ce post :

http://www.developpez.net/forums/d74...s/#post4295774

Lorsque le code passe sur
While Not EOF(1)

EOF(1) et à Vrai et va directement à la ligne
Close #1


Champs de la table Access 2003:

ID
HEURE
NOMA
NOMB
COURT
NATURE
DATE

Sur WordPad les enregistrements de la table importée (Fichier Excel Csv) se présentent de cette façon :

DATE ; HEURE ; NOM ; NOM ; COURT ; NATURE
Samedi 05 Décembre 2009
;09h 00;DURAND;;N°7;Adhérent

Nota : ce n’est pas une erreur de ma part le fichier à importer contient deux fois le champ NOM.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Private Sub Import()
 
Dim Ligne AS string 
Dim HEURE As String
Dim NOM As String
Dim COURT As String
Dim NATURE As String
Dim db As DAO.Database: Set db = CurrentDb
Dim rs As DAO.Recordset: Set rs = db.OpenRecordset("table1")
 
 
Open "C:\Documents and Settings\Propriétaire\Mes documents\Bureau\Import\Excel.csv" For Input As #1
 
Line Input #1, ligne ' pour eviter la premiere ligne
While Not EOF(1)
    Line Input #1, ligne
 
    DATE = Left(ligne, (len_enreg(ligne)))
    ligne = Right(ligne, (Len(ligne) - (Len(DATE) + 1)))
 
    HEURE = Left(ligne, (len_enreg(ligne)))
    ligne = Right(ligne, (Len(ligne) - (Len(HEURE) + 1)))
 
    NOM = Left(ligne, (len_enreg(ligne)))
    ligne = Right(ligne, (Len(ligne) - (Len(NOM) + 1)))
 
    NOM = Left(ligne, (len_enreg(ligne)))
    ligne = Right(ligne, (Len(ligne) - (Len(NOM) + 1)))
 
    COURT = Left(ligne, (len_enreg(ligne)))
    ligne = Right(ligne, (Len(ligne) - (Len(COURT) + 1)))
 
    NATURE = Left(ligne, (len_enreg(ligne)))
    ligne = Right(ligne, (Len(ligne) - (Len(NATURE) + 1)))
 
    With rs
       .AddNew
        ![DATE] = DATE
        ![HEURE] = HEURE
        ![NOMA] = NOM
        ![NOMB] = NOM
        ![COURT] = COURT
        ![NATURE] = NATURE
       .Update
    End With
Wend  
 
Close #1
 
End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Private Function len_enreg(ByVal a As String) As Integer ' renvoi la taille de l'enregistrement en cours ( jusque ";")
 
Dim cpt As Integer
cpt = 1
While Mid(a, cpt, 1) <> ";"
    cpt = cpt + 1
Wend
 
len_enreg = cpt - 1
 
End Function
Merci pour votre aide.

Salutations.