bonjour,
je cherche le code pour ouvrir une boite de dialogue tout simple qui permet de selectionner un fichier et de l'ouvrir.
merci
bonjour,
je cherche le code pour ouvrir une boite de dialogue tout simple qui permet de selectionner un fichier et de l'ouvrir.
merci
dans une classe (module .bas) :
et dans ta form (là où c'est utile) :
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 Public 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 Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long Dim OFName As OPENFILENAME Public Function ShowOpen(forma As Form) As String OFName.lStructSize = Len(OFName) OFName.hwndOwner = forma.hwnd OFName.hInstance = App.hInstance OFName.lpstrFilter = "le texte que tu souhaites" + Chr$(0) + "*.*" OFName.lpstrFile = Space$(254) OFName.nMaxFile = 255 OFName.lpstrFileTitle = Space$(254) OFName.nMaxFileTitle = 255 OFName.lpstrInitialDir = "C:\" OFName.lpstrTitle = "le texte que tu souhaites" OFName.Flags = 0 If GetOpenFileName(OFName) Then ShowOpen = Trim$(OFName.lpstrFile) Else ShowOpen = "" End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim fichierchoisi As String fichierchoisi = ShowOpen(Me)
SVP, veuillez fournir à l'avenir plus de précision car par exemple, pour une application Excel, c'est légèrement plus simple
Code : Sélectionner tout - Visualiser dans une fenêtre à part application.Dialogs(xlDialogOpen).Show
Bonjour
Tant qu'à faire simple, utilises simplement le contrôle CommonDialog, avec la constante ShowOpen, ceci avec VB6 (merci les balises...).
Praticiels: http://jacma.developpez.com.
cad, je dois mettre la declaration de la boite de dialogue où exactement dans le code ?dans une classe (module .bas) :
Tu as eu plusieurs réponses. Certaines sont beaucoup plus simples que la mienne, mais tu choisis la plus compliquée (la mienne) !
D'accord pour te répondre, mais à consition seulement que ce soit vraiment nécessaire.
Dis-nous donc : quelle version de VB utilises-tu ?
Bonsoir,
Si tu es en VB 6, utilise un CommonDialog.Place un TextBox(propriété Multiligne à True), un CommandButton et le contrôle CommonDialog sur ta Form.
jpleroisse
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 Private Sub Command1_Click() With CommonDialog1 .DialogTitle = "Rechercher un fichier" .CancelError = True .InitDir = "C:\" .Filter = "Fichier texte (*.txt)|*.txt|Tous (*.*)|*.*" .FilterIndex = 1 On Error GoTo Annuler: .ShowOpen End With MsgBox "Le fichier " & CommonDialog1.FileName & "a été sélectionné." GoTo Suite: Annuler: MsgBox "Vous n'avez sélectionné aucun fichier", vbInformation, "Annler" Suite: On Error Resume Next Dim tout, texte, crft, nFich crft = Chr(13) + Chr(10) nFich = CommonDialog1.FileName Open nFich For Input As #1 Line Input #1, texte tout = texte If Len(tout) <> 0 Then While Not EOF(1) Line Input #1, texte tout = tout + crft + texte Wend End If Text1.Text = tout Close #1 End Sub
en faite ma boite de dialogue j'en ai besoin pour une application access 2000donc je suis sous access
![]()
Ajouter un control alors qu'access le gère en interne ça me fait bizarre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Dim dlgOpen As FileDialog, msg As String Set dlgOpen = Application.FileDialog(msoFileDialogOpen) With dlgOpen .AllowMultiSelect = True If .Show Then For x = 1 To .SelectedItems.Count msg = msg & .SelectedItems(x) & vbCrLf Next MsgBox msg End If End With
si access le gere en interne je n'ai pas trouve l'option alors :/
Cela aurait été bien de le préciser dès le début, avec un tag dans le titre.Envoyé par pimpmyride
![]()
![]()
Praticiels: http://jacma.developpez.com.
Pour conclure :
Losque j'ai dit:
seulement si c'est vraiment nécessaire
je disais bien ce que je voulais dire. Tout dépendait en effet de l'outil que tu possédais.
Travaillant personnellement avec un outil pauvre (VB5), j'opte pour l'appel de l'API de Windows pour éviter l'utilisation lourde de DirBox, FileBox, DriveBox et ListBox...
En ce qui te concerne, tu possèdes un outil dont un contrôle unique fait tout celà pour toi. Il est de surcroit présent et pèse donc dans ton application, que tu le veuilles ou non (sa présence t'est imposée). Il convient donc de l'utiliser plutôt que de faire appel à l'API qui... exécutera le même code!
Un peu de philosophie générale maintenant :
-chaque fois que la ver(sion VB le permet, il est préférable de ne pas tout inclure dans son application. Elle sera plus légère si l'on a écarté tout ce qui pouvait l'être. C'est dans cet esprit que je développe généralement...
et c'est la raison pour laquelle je n'hésite pas, au besoin, de faire appel à l'API.
Exprimé d'une autre façon : A quel artisan viendrait-il à l'idée de déplacer tout son atelier pour ... ne placer qu'une cheville dans un mur ?
Lorsque toutefois, la perceuse est de toute façon imposée dans sa boite à outils, il serait mal venu de transporter un tour pour fabriquer une perceuse...
Je crois qu'un jour je développerai un petit article pour exposer ces idées à mon sens essentielles.
Amitiés à tous.
Autant pour moi - je viens de vérifier - l'object FileDialog a été ajouté à partir de la version 2002.![]()
Partager