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 Membre Dernière intervention 4 mars 2013 130
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
Rejoignez-nous