Boite de dialogue Ouvrir / Enregistrer Sous (API OPENFILENAME)

Résolu
isa911
Messages postés
63
Date d'inscription
mercredi 28 février 2001
Statut
Membre
Dernière intervention
25 novembre 2010
- 12 déc. 2005 à 17:25
isa911
Messages postés
63
Date d'inscription
mercredi 28 février 2001
Statut
Membre
Dernière intervention
25 novembre 2010
- 13 déc. 2005 à 10:08
Bonjour,

Je cherche à utiliser cette API, elle fonctionne correctement, mais comment faire pour mettre un nom de fichier par défaut pour l'enregistrement ?

En utilisant lpstrInitialDir, je n'arrive qu'à sélectionner le répertoire, comment faire pour renseigner le champ " Nom du fichier ... " ????

Isa911

5 réponses

isa911
Messages postés
63
Date d'inscription
mercredi 28 février 2001
Statut
Membre
Dernière intervention
25 novembre 2010

13 déc. 2005 à 10:08
Il faut mettre :
OpenFile.lpstrFile = Left(InitChemin & String(257, 0), 257)

Et ca marche !!!!

Isa911
3
jpleroisse
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
27
12 déc. 2005 à 17:47
Bonsoir,

Tu programme en Quoi ???, mets un bout de code pour se rendre compte de ce que tu veux dire (faire)..



jpleroisse
0
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
12 déc. 2005 à 18:10
lpstrFile de la structure OPENFILENAME doit te permettre de définir le nom par défaut.

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
isa911
Messages postés
63
Date d'inscription
mercredi 28 février 2001
Statut
Membre
Dernière intervention
25 novembre 2010

13 déc. 2005 à 08:28
Je programme en VBA sur Access 97.

'Declaration
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Public Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long


Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Ma fonction :
Function SelectionFichier(Num As Integer, Optional InitChemin As String, Optional TexteTitre As String) As String '(strform As Form)
'Num = 1 : Selection fichier, 2 : Enregistre sous
'InitChemin = Chemin complet par defaut
'TexteTitre = Texte inscrit dans le titre du CommonDialog
Dim OpenFile As OPENFILENAME
Dim lReturn As Long
Dim sFilter As String
OpenFile.lStructSize = Len(OpenFile)
sFilter = "All Files (*.*)" & Chr(0) & "*.*" & Chr(0) & "JPEG Files (*.JPG)" & Chr(0) & "*.JPG" & Chr(0) & "Excel Files (*.Xls)" & Chr(0) & "*.Xls" & Chr(0)
OpenFile.lpstrFilter = sFilter
OpenFile.nFilterIndex = 1
OpenFile.lpstrFile = String(257, 0)
OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
OpenFile.lpstrFileTitle = OpenFile.lpstrFile
OpenFile.nMaxFileTitle = OpenFile.nMaxFile
OpenFile.lpstrInitialDir = InitChemin
If TexteTitre = Null Then
OpenFile.lpstrTitle = "Selection Fichier"
Else
OpenFile.lpstrTitle = TexteTitre
End If
OpenFile.flags = 0
OpenFile.lpTemplateName = InitChemin
Select Case Num
Case 1
lReturn = GetOpenFileName(OpenFile)
Case 2
lReturn = GetSaveFileName(OpenFile)
Case Else
lReturn = 0
End Select
If lReturn = 0 Then
MsgBox "Aucun fichier selectionné !", vbInformation, "Selection Fichier"
Else
SelectionFichier = Trim(Left(OpenFile.lpstrFile, InStr(1, OpenFile.lpstrFile, vbNullChar) - 1))
End If
End Function

Exemple d'utilisation de ma fonction :
enr = SelectionFichier(2, "C:\Access\essais."xls", "Enregistrement du fichier Excel")

Isa911
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
isa911
Messages postés
63
Date d'inscription
mercredi 28 février 2001
Statut
Membre
Dernière intervention
25 novembre 2010

13 déc. 2005 à 10:07
En mettant le nom de mon fichier avec ou sans le chemin complet dans lpstrFile, cela ne fonctionne pas.

Je n'ai pu installer ProgOtoP.

Isa911
0