Bonjour chers forumiens,
Voici le topo: je réalise une application qui effectue un certain nombre de calculs statistiques et qui exporte les résultats de ceux-ci vers Excel. Pour cela je crée un état que j'expédie tel quel dans Excel:
pour permettre à l'utilisateur d'avoir la main sur le chemin d'enregistrement j'ai crée une la fonction enregistrerSous utilisée précedemment:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Public Function Export(etat As String, monNomFic As String) 'fermetat (etat) Application.CommandBars("fermeretat").Enabled = True If MsgBox("Souhaitez vous tranférer l'état sur EXCEL ? ", vbDefaultButton1 + vbYesNo, "EXPORT") Then cheminEnregistrement = EnregistrerSous("Enregistrer sous", monNomFic, "D:\outils_statistiques\") DoCmd.OutputTo acOutputReport, etat, acSpreadsheetTypeExcel9, cheminEnregistrement, False End If End Function
Cette fonction fonctionne bien sauf que lorsqu'elle m'enregistre l'export pour un fichier [nomFic] déjà existant, elle ne me propose pas de l'écraser mais crée un fichier avec [nomFic] concatener à lui même.
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 Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long Private Type OPENFILENAME structSize As Long hOwner As Long hInstance As Long lFilter As String lCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lFile As String lMaxFile As Long lFileTitle As String lMaxFileTitle As Long lInitialDir As String lTitle As String Flags As Long nFileOffset As Integer nFileExtension As Integer lDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type Function EnregistrerSous(TITRE As String, nomFic As String, chemin As String) As String ' Déclarations Dim structSave As OPENFILENAME With structSave .structSize = Len(structSave) ' .hOwner = hdle .lMaxFile = 255 .lFile = nomFic & String$(255 - Len(nomFic), 0) .lInitialDir = chemin .lFilter = "Tous (*.*)" & Chr$(0) & "*.*" & Chr$(0) ' .Flags = &H4 End With If (GetSaveFileName(structSave)) Then EnregistrerSous = Mid$(structSave.lFile, 1, InStr(1, structSave.lFile, vbNullChar) - 1) End If End Function
Exemple: pour les statistiques d'échanges bancaires
nomFic ="Echanges_Bancaires_1012008_31122008.xls" si je recalcule ces données pour la même période(nomFic restant le même donc)
j'aurais dans mon repertoire:
un fichier appelé "Echanges_Bancaires_1012008_31122008.xls" et un fichier
"Echanges_Bancaires_1012008_31122008.xlsEchanges_Bancaires_1012008_31122008.xls"
Quelqu'un sait t'il d'où ça peut venir ??
Bien cordialement amis forumiens![]()
Partager