Bonjour,

je vous expose mon problème.
j'ai une macro qui me permet de copier la partie que je veux de plusieurs fichiers Excel sont les ouvrir d'un dossier.
jusqu'à là tout va bien.
mon soucis est que la première colonne de mon fichier est une date mais qui est sous la forme "le 1 janvier" ou bien "le 25 janvier". je souhaite transformer cette date en format date.
j'ai procéder de la façon suivante:
1) je copie d'abord tout mes fichiers
2) j’enlève "le" de chaque cellule
3) j'essaye de transformer en format date avec la fonction CDate!!! mais ne marche pas!!
sachant que je cherche à transformer par exemple "le 1 janvier" en 01/01/2012
il faudra à chaque fois ajouter l'année en cours.
voilà merci beaucoup pour votre aide

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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Sub Compilation()
 
Dim Fichier As String
Dim Chemin As String
Dim ClasseurSource As Workbook
 
 
Application.DisplayAlerts = False 'Evite les messages d'Excel
Application.EnableEvents = False 'Evite l'exécution éventuelle de macros liées aux fichiers ouverts
 
Chemin = "C:\Documents and Settings\Bureau\Dossier\" 'Chemin du répertoire contenant les fichiers
Fichier = Dir(Chemin & "*.xls")
 
Sheets("Feuil1").Select
Cells.Clear ' tout effacer
Cells(1, 2) = "Date"
Cells(1, 3) = "Appels reçus en état ouverts"
Cells(1, 4) = "Appels reçus en état bloqué"
Cells(1, 5) = "Appels reçus en état renvoi général"
Cells(1, 6) = "Appels reçus par entraide"
Cells(1, 7) = "Nombre maximum d'appels simultanés"
Cells(1, 8) = "Débordements pendant sonnerie"
Cells(1, 9) = "Appels servis sans attente"
Cells(1, 10) = "Appels servis avec attente"
Cells(1, 11) = "Appels envoyés en entraide"
Cells(1, 12) = "Appels redirigés hors ACD"
Cells(1, 13) = "Appels dissuadés"
Cells(1, 14) = "Appels traités par un GT Guide"
Cells(1, 15) = "Appels envoyés à un GT remote"
Cells(1, 16) = "Appels rejetés pour manque de ressources"
Cells(1, 17) = "Appels servis par un agent"
Cells(1, 18) = "Servis par un agent conformément à la QS"
Cells(1, 19) = "Appels servis sans code de transaction"
Cells(1, 20) = "Appels servis avec code de transaction"
Cells(1, 21) = "Redistributions ACD"
 
'Cells(1, 22) = "Appels reçus en état bloqué"
'Cells(1, 23) = "Appels reçus en état bloqué"
'Cells(1, 24) = "Appels reçus en état bloqué"
'Cells(1, 25) = "Appels reçus en état bloqué"
 
 
 
'lig = 2
 
Do While Fichier <> ""
    'Range("A2") = Dir
    Set ClasseurSource = Workbooks.Open(Chemin & Fichier)
    ClasseurSource.Worksheets("General").Select 'nom de la feuille source (commune à tous les fichiers sources)
 
    Range("B8:Y8").Select
    Range("Y8").Activate
 
 
 
    Range(Selection, Selection.End(xlDown)).Select 'selection de la zone à copier
    'Date = CDate(Range("A8"))
 
    Selection.Copy
 
    ThisWorkbook.Activate
 
    Sheets("Feuil1").Select
    fin = Cells(65535, 2).End(xlUp)(2).Select 'recherche de la première ligne vide
 
    ActiveSheet.Paste
 
    ClasseurSource.Close
 
    Fichier = Dir
Loop
Dim i As Variant
 
Dim j As Variant
 
i = 2
j = 2
' boucle pour enlever "LE" de la date
Do While i <> fin And i < 374
Sheets("Feuil1").Cells(i, 2) = Right((Sheets("Feuil1").Cells(i, 2)), 10)
i = i + 1
Loop
 
' boucle pour transformer en format date
j = 2
Do While j <> fin And j < 374
   Sheets("Feuil1").Cells(j, 2) = CDate(Cells(j, 2).Value)
    ' i = i + 1
     j = j + 1
Loop
 
Application.EnableEvents = True
Application.DisplayAlerts = True
 
End Sub