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:

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
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
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
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.

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