Definir Chemin d'un dossier pour macro

Delux

XLDnaute Occasionnel
Bonjour a tous et a toutes,

Desole pour les accents je bosse sur QWERTY.

Je me creuse la tete depuis plusieurs jours pour essayer de definir un chemin de repertoire qui va etre utilise par une macro.

J'aimerais pouvoir definir le repertoire ("pfile") moi meme, en choisissant le dossier, car les fichiers a selectionner pour ma macro pourront etre sauvegardes dans differents repertoires:

Code:
pfile = ActiveWorkbook.Path & "\Users\"
nfile = Dir(pfile & "*.xls")

J'ai bien trouve des macros pour selectionner des chemins d'acces vers les dossiers mais je n'arrive pas a les appliquer pour que "pfile" se modifie en fonction de la selection.

Code:
Sub test()

Dim Dossier As FileDialog
Set Dossier = Application.FileDialog(msoFileDialogFolderPicker)
MsgBox "Select a folder where the Users' templates are saved"
Dossier.Show
MsgBox Dossier.SelectedItems(1)

End Sub

Quelqu'un aurait-il une solution?

Merci d'avance

Cordialement,

Delux
 

fredl

XLDnaute Impliqué
Re : Definir Chemin d'un dossier pour macro

Bonjour,
la macro suivante travaillera sur tous les fichiers .xls du repertoire de ton choix.
Dis moi si ok
Fred
 

Pièces jointes

  • essai.xls
    20 KB · Affichages: 116
  • essai.xls
    20 KB · Affichages: 122
  • essai.xls
    20 KB · Affichages: 126

kjin

XLDnaute Barbatruc
Re : Definir Chemin d'un dossier pour macro

Bonjour,
La solution est dans ta question !
Code:
Sub test()
Dim Dossier As FileDialog
Set Dossier = Application.FileDialog(msoFileDialogFolderPicker)
Dossier.Show
If Dossier.SelectedItems.Count > 0 Then pfile = Dossier.SelectedItems(1) & "\"
End Sub
A+
kjin
 

Delux

XLDnaute Occasionnel
Re : Definir Chemin d'un dossier pour macro

Kjin,

Est-il possible de voir dans le dossier les fichiers excel presents sans devoir les selectionner?

Je m'explique, si on rajoute le code suivant, la boite de dialogue s'ouvre avec les fichiers excel que contient le dossier, mais il faut choisir le fichier excel et non plus le dossier.

Code:
msoFileDialogFilePicker

Cordialement,

Delux
 

Delux

XLDnaute Occasionnel
Re : Definir Chemin d'un dossier pour macro

Re,

En fait, quand on utilise le code suivant pour afficher les dossiers, les fichiers n'apparaissent pas
Code:
Application.FileDialog(msoFileDialogFolderPicker)

Si on rajoute le code qui suit, en plus de celui au dessus, on voit les dossiers et les noms des fichiers presents, mais on est desormais oblige de choisir le fichier et non plus le dossier
Code:
Application.FileDialog(msoFileDialogFolderPicker)

En gros, on obtiendra "C:\blablabla\blabla\blabla\blabla.xls"

Donc ma question est: Peut on afficher le contenu d'un dossier, mais ne selectionner que le dossier pour obtenir son chemin d'acces? ("C:\blablabla\blabla\blabla\").

Merci

Cordialement

Delux
 

kjin

XLDnaute Barbatruc
Re : Definir Chemin d'un dossier pour macro

Bonsoir,
Donc ma question est: Peut on afficher le contenu d'un dossier, mais ne selectionner que le dossier pour obtenir son chemin d'acces? ("C:\blablabla\blabla\blabla\").
Eh elle fait quoi la macro réponse 4 ?!
Quand tu es dans VBE, menu afficher/variables locales puis tu executes le code en appuyant sucesssivement sur la touches F8 et tu verras les valeurs que prennent tes variables, dans l'exemple pfile renvoie le dossier sélectionné
A+
kjin
 

Yaloo

XLDnaute Barbatruc
Re : Definir Chemin d'un dossier pour macro

Bonsoir à tous,

Bien que la macro de kjin fonctionne très bien, en voici une autre :

VB:
Sub test()
Dim objShell As Object, objFolder As Object, oFolderItem As Object 'Pour répertoire
Dim Chemin As String, Nom As String, i&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
  On Error Resume Next
  Set oFolderItem = objFolder.Items.Item
  Chemin = oFolderItem.Path
  'Si pas de répertoire ou sous-répertoire sélectionné alors on sort...
  If Chemin = "" Then Exit Sub
End Sub

A+

Martial
 

Delux

XLDnaute Occasionnel
Re : Definir Chemin d'un dossier pour macro

Bonjour Kjin, Martial,

Kjin,

En fait quand on utilise "Application.FileDialog(msoFileDialogFolderPicker)", on ne voit pas le contenu du dossier (ex: je ne vois pas mes fichier excel sauvegardes a l'interieur).

Pour afficher les fichiers excel il faut rajouter "Application.FileDialog(msoFileDialogFolderPicker)", mais cela oblige des lors a selectionner un fichier excel et non plus le dossier.

Donc je voulais savoir si il etait possible d'afficher ce que contient un dossier tout en ne selectionnant que le dossier pour que j'obtienne son chemin d'acces.

Merci d'avance

Cordialement,

Delux
 

kjin

XLDnaute Barbatruc
Re : Definir Chemin d'un dossier pour macro

Bonjour,
Code:
'Private Const BIF_NEWDIALOGSTYLE As Long = &H40
'Private Const BIF_NONEWFOLDERBUTTON As Long = &H200
'Private Const BIF_RETURNONLYFSDIRS As Long = &H1
'Private Const BIF_BROWSEINCLUDEFILES As Long = &H4000

Sub RechercheDossier()
Dim oSh As Object, pFile As Object, pIni$
pIni = "x:\xxx\xxx" 'le répertoire initial
Set oSh = CreateObject("Shell.Application")
On Error Resume Next
Set pFile = oSh.BrowseForFolder(0&, "Sélectionnez un dossier", &H40 + &H200 + &H4000, pIni)
On Error GoTo 0
If Not pFile Is Nothing Then
    MsgBox pFile.Items.Item.Path & "\"
End If
End Sub

Edit : Désolé Yaloo
:), le nez dans le guidon...

A+
kjin
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Definir Chemin d'un dossier pour macro

Salut kjin, le forum,

@ kjin : pas de problème ;), car toi tu réalises exactement la demande de Delux, afficher les fichiers des répertoires.

Par contre, il y a qq chose que je ne comprends pas c'est pIni = "x:\xxx\xxx" 'le répertoire initial et ... + &H200 + &H4000, pIni) avec ce code cela devrait ouvrir directement dans le répertoire pIni, chez moi ça ouvre sur mes documents. Sais-tu pourquoi ?

A+

Martial
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87