Bouton Parcourir sous VBA pour Excel

Signaler
Messages postés
5
Date d'inscription
mardi 24 mai 2005
Statut
Membre
Dernière intervention
25 mai 2005
-
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
-
Salut,

je travaille sous VBA pour Excel(XP), et je voudrais mettre un bouton parcourir dans une boite de dialogue afin de travailler ensuite sur le fichier ainsi atteint.

Je sais qu'un tel bouton n'existe pas et qu'il faut le creer, mais je ne sais pas comment faire(j'ai entendu parler de Common Dialog, mais je ne sais pas ce que c'est et ou trouver ca...)

J'ai donc grandement besoin d'aide ca sans ca je ne peux pas avancer.

Merci d'avance

8 réponses

Messages postés
61
Date d'inscription
mardi 26 août 2003
Statut
Membre
Dernière intervention
25 mai 2005

POur utiliser l'objet Common dialog, il faut aller dans
Projet\composants, là tu cherches "Microsoft Common Dialog Control",
lorsque tu l'as ajouté, il apparaîtra dans ta barre d'outils (là où se
trouve les boutons, textbox, ...), tu le sélectionnes et tu en ajoutes
un sur la fenêtre qui t'intéresse, il te suffit ensuite de te référer à
l'aide MSDN (elle est bien faite), sinon voici un exemple de code
:



With CommonDialog

.DialogTitle = "File to execute ..."

.DefaultExt = "*.*"

.Filter = "All files (*.*)|*.*|Executable files (*.exe)|*.exe|"

.ShowOpen

If Trim$(.FileName) <> vbNullString Then

Call SaveEntry(.FileName, Liste)

End If

End With


Bonne chance,






[%22%20mailto:paulferrand@yahoo.fr%22%20 " mailto:paulferrand@yahoo.fr" ]Surfurax[/url
Messages postés
5
Date d'inscription
mardi 24 mai 2005
Statut
Membre
Dernière intervention
25 mai 2005

super, merci beaucoup, j'espere que je vais m'en sortir avec ca
Messages postés
5
Date d'inscription
mardi 24 mai 2005
Statut
Membre
Dernière intervention
25 mai 2005

Le probleme c'est que je trouve pas Projet\composants
ca se trouve ou?

Merci
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonsoir,

Si tu n'as pas Visual Studio 6.0, je ne pense pas que tu puisses avoir
le contrôle CommonDialog. Le plus simple pour toi c'est de créer un
UserForm qui servirait pour ouvrir et visionner des fichier .txt.

Je vais préparer un code,je le posterai et lu verras si ça te convient.



jpleroisse
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonsoir,

Je viens de me rappeler que pour remplacer le CommonDialog de VB tu as dans Excel la collection Dialogs.



Private Sub CommandButton1_Click()

Application.Dialogs(xlDialogOpen).Show

End Sub



jpleroisse
Messages postés
5
Date d'inscription
mardi 24 mai 2005
Statut
Membre
Dernière intervention
25 mai 2005

En fait ce que je cherche a faire c'est pas vraiment ouvrir le fichier.
Je voudrais juste récuperer le nom du fichier pour pouvoir executer une procedure dessus.
Pour l'instant j'ai une InputBox, et je dois rentrer a la main le nom du fichier(avec l'emplacement précis sur le disque), ce qui est assez pénible dès qu'il faut le faire plusieurs fois de suite.
C'est pourquoi je prefererais avoir un bouton parcourir.

Comment je peux faire ca ?

Merci d'avance.
Messages postés
5
Date d'inscription
mardi 24 mai 2005
Statut
Membre
Dernière intervention
25 mai 2005

C'est bon en fait j'ai reussi a faire ce que je voulais, seulement la fenetre UserForm où il y a mon bouton parcourir ne se ferme pas toute seule.
Comment faire pour que la boite de dialogue se ferme une fois que j'ai cliqué sur le bouton?

Merci

Julien
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonjour,

Tu ajoutes à la fin de la procédure Unload Me.



Pour information, voici un code qui permet de lire les nom des dossiers et fichiers d'un répertoire.



Option Explicit

Public oFs As Object



Sub Main()

Set oFs = CreateObject("Scripting.FileSystemObject")

Dossiers_Fichiers ("C:\Temp")

End Sub



Sub Dossiers_Fichiers(sNomDossier As String)

Dim oDossier As Object

Dim oSousDossier As Object

Dim oSousDossiers As Object

Dim oFichier As Object

Dim oFichiers As Object

Dim sDossiers As String

Dim sFichiers As String

sNomDossier = "C:"

Set oDossier = oFs.GetFolder("C:")

Set oSousDossiers = oDossier.SubFolders

For Each oSousDossier In oSousDossiers

sDossiers = sDossiers & oSousDossier.Name & vbCrLf

Next

MsgBox "Liste des sous-dossiers dans " & sNomDossier & vbCrLf & sDossiers

Set oFichiers = oDossier.Files

For Each oFichier In oFichiers

sFichiers = sFichiers & oFichier.Name & vbCrLf

Next

MsgBox "Liste des fichiers dans " & sNomDossier & vbCrLf & sFichiers

End Sub



Private Sub CommandButton1_Click()

Main

End Sub



jpleroisse