Bonjour à tous,

Je vais vous exposer mon problème.
Voilà, j'ai une table access que j'arrive à exporter sur une table excel (alléluia).
Maintenant ce que je souhaite obtenir c'est l'exportation par rapport à une condition sur un champ de ma table access. Je m'explique, sur ma table 'OPERATION' de access, j'ai un champ date, et je voudrais faire en sorte que l'exportation se fasse quand la date passe d'une année sur l'autre. (01/01/aaaa<=date<='31/12/aaaa').
En fait, le but est d'archiver ma table dans un fichier excel selon la date donnée.

Voici mon 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
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
 
Private Sub archive_Click() 
 
   Dim xlApp As Excel.Application 
    Dim xlSheet As Excel.Worksheet 
    Dim xlBook As Excel.Workbook 
    Dim I As Long, J As Long 
    Dim t0 As Long, t1 As Long 
 
    t0 = Timer 
    Dim rec As DAO.Recordset 
 
    Set rec = CurrentDb.OpenRecordset("OPERATION", dbOpenSnapshot) 
 
    'Initialisations 
    Set xlApp = CreateObject("Excel.Application") 
    Set xlBook = xlApp.Workbooks.Add 
 
    'Ajouter une feuille de calcul 
    Set xlSheet = xlBook.Worksheets.Add 
    xlSheet.Name = "Table" 
 
    ' le titre 
    '  écriture dans la cellule de ligne 1 et de colonne 1 
    xlSheet.Cells(1, 1) = "Export d'une table Access" 
 
 
    ' les entetes 
    '  .Fields(Index).Name renvoie le nom du champ 
    For J = 0 To rec.Fields.Count - 1 
        xlSheet.Cells(2, J + 1) = rec.Fields(J).Name 
        ' Nous appliquons des enrichissements de format aux cellules 
        With xlSheet.Cells(2, J + 1) 
            .Interior.ColorIndex = 15 
            .Interior.Pattern = xlSolid 
            .Borders(xlEdgeBottom).LineStyle = xlContinuous 
            .Borders(xlEdgeBottom).Weight = xlThin 
            .Borders(xlEdgeBottom).ColorIndex = xlAutomatic 
            .HorizontalAlignment = xlCenter 
        End With 
    Next J 
 
    ' recopie des données à partir de la ligne 3 
    I = 3 
    Do While Not rec.EOF 
        For J = 0 To rec.Fields.Count - 1 
            ' .Fields(Index).Type renvoie le type du champ 
            '   si c'est un Texte (dbText) nous insérons "'" pour 
            '   qu'il soit reconnu par Excel comme du Texte 
            If rec.Fields(J).Type = dbText Then 
                xlSheet.Cells(I, J + 1) = "'" & rec.Fields(J) 
            Else 
                xlSheet.Cells(I, J + 1) = rec.Fields(J) 
            End If 
        Next J 
        I = I + 1 
        rec.MoveNext 
    Loop 
 
    ' code de fermeture et libération des objets 
    xlBook.SaveAs "F:\Feuille.xls" 
    xlApp.Quit 
    rec.Close 
    Set rec = Nothing 
    Set xlSheet = Nothing 
    Set xlBook = Nothing 
    Set xlApp = Nothing 
 
    t1 = Timer 
    Debug.Print I & " enregistrements", Format(t1 - t0, "0") & " secondes" 
 
End Sub



Voilà en vous remerciant d'avance, j'espère que vous pourrez me venir en aide.
Merci,