Bonjour,
Je suis étudiante en télécommunication et informatique et réalise un stage actuellement dans une entreprise depuis le mois de juin pour améliorer la base de données (sous ACCESS 2007). D'une formation C et C++ en informatique, je me suis rapidement mise au VBA grace aux FAQs de ce forum (je n'en maitrise pas encore bien la logique et les subtilités).
Néanmoins aujourd'hui j'ai beau lire et relire les FAQs et les différentes discussions, je ne trouve pas évocations du problème que je rencontre. Je m'explique :
Je cherche à copier des données de ma table access ( nommée "tmp_aco") dans une feuille excel (excel 2003), une trame qui existe, jusque là pas de problème. J'applique un filtre sur la première colonne pour que les dates soit triées par ordre décroissant et là aussi tout va bien.
Le problème arrive lorsque je veux que mes données, copiées de access dans excel, prennent un format date du type mmm-aa (ces données sont aux formats JJ/MM/AAAA), et là le changement de format ne se fait pas sur les données récemment copiées, mais une fois que je double clique sur ces données ou que j'enlève "l'espace imaginaire" sous excel, là elles se placent au bon format.
J'ai joint une aquisition de ma feuille excel en haut les dates préalables copiées et triées mais le format ne se change pas comme sur les lignes d'en dessous (ex:"mai-12")
Voilà je ne comprend pas pourquoi le format ne se modifie pas sur ces lignes comme sur celle préalablement enregistrées sur ma feuille excel. On dirait que excel attend une validation de ma part de ces données... Peut etre est il possible de "reproduire le double clique, la validation" sous excel depuis access ?
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 Private Sub Commande3_Click() On Error GoTo Err_Commande3_Click Dim appexcel As Excel.APPLICATION Dim wbexcel As Excel.Workbook Dim Rs As Recordset Dim objFSO As FileSystemObject Dim nomcompresseur As String Dim i As Single DoCmd.OpenQuery "qry_aco_fiche_acoustique_de_bis" DoCmd.OpenQuery "qry_aco_numac_date" Set Rs = CurrentDb.OpenRecordset("tmp_aco_controle_qualite") If Not Rs.EOF Then Rs.MoveLast nomcompresseur = Rs("COMPRESSEUR") End If Rs.Close Set Rs = Nothing Set appexcel = CreateObject("Excel.Application") appexcel.Visible = True 'mettre false pour que excel ne s'ouvre pas Set wbexcel = appexcel.Workbooks.Open("H:\USERS\COMMUN\ACOUSTIQUE RAPPORT\Contrôle qualité\" & nomcompresseur & ".xls") appexcel.Sheets("Feuil1").Select i = 1 Do i = i + 1 Loop While Not (IsEmpty(appexcel.Cells(i, 1))) Set Rs = CurrentDb.OpenRecordset("tmp_aco_controle_qualite") appexcel.Cells(i, 1).CopyFromRecordset Rs 'copie de la table dans excel Set Rs = Nothing appexcel.Workbooks(nomcompresseur & ".xls").Save Sleep 200 appexcel.Workbooks(nomcompresseur & ".xls").Close Set wbexcel = appexcel.Workbooks.Open("H:\USERS\COMMUN\ACOUSTIQUE RAPPORT\Contrôle qualité\" & nomcompresseur & ".xls") appexcel.Sheets("Feuil1").Select For i = 1 To 500 appexcel.Range("A" & i).NumberFormat = ("mmmm-yy") Next appexcel.Range("A1:A300").Sort Key1:=appexcel.Range("A2"), Order1:=xlDescending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal appexcel.Workbooks(nomcompresseur & ".xls").Save Exit_Commande3_Click: Exit Sub Err_Commande3_Click: MsgBox Err.Description Resume Exit_Commande3_Click End Sub
Avez vous déjà rencontré ce problème ? Avez vous des pistes de résolutions ?
Je vous ai joint mon code évidemment c'est un morceau d'un tout donc si il y a des interrogations n'hésitez pas.
Enfin si je peux l'améliorer( esthétique ou syntaxe ) signalez le moi
Je vous remercie par avance.
Bien cordialement,
Em.
Partager