begin process at 2012 02 16 11:12:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > SELECTION DE DOSSIER AVEC BOUTON "NOUVEAU DOSSIER"

SELECTION DE DOSSIER AVEC BOUTON "NOUVEAU DOSSIER"


 Information sur la source

Note :
8,71 / 10 - par 7 personnes
8,71 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Classé sous :browseforfolder, selection, dossier, choisir, shbrowseforfolder Niveau :Débutant Date de création :21/10/2003 Date de mise à jour :13/01/2006 10:47:55 Vu / téléchargé :12 154 / 691

Auteur : Renfield

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note


 Description

Suite a une demande sur le forum (et oui, encore !!) , j'ai fais ce module.

Ca permet d'afficher l'assistant de selection de dossier (avec un bouton "Nouveau Dossier" )

Source

  • Private Sub Form_Load()
  • MsgBox BrowseAndCreate("Veuillez selectionner votre Dossier.")
  • End Sub
  • Public Function BrowseAndCreate(Title As String) As String
  • Dim Shell As Variant, Folder As Variant
  • Set Shell = CreateObject("Shell.Application")
  • Set Folder = Shell.BrowseForFolder(hWnd, Title, 0, "")
  • BrowseAndCreate = Folder.items.Item.Path
  • End Function
  • '----------------------------------------------------------
  • OU
  • '----------------------------------------------------------
  • Public Function BrowseForFolder(Optional ByRef Title As String = "Please, select a directory", Optional ByRef InitialDirectory As String) As String
  • Dim iNull As Integer
  • Dim lpIDList As Long
  • Dim sPath As String
  • Dim BI As BROWSEINFO
  • mBrowseFolder = InitialDirectory
  • With BI
  • .hwndOwner = 0
  • .lpszTitle = lstrcat(Title, vbNullChar)
  • .ulFlags = BIF_RETURNONLYFSDIRS Or BIF_NEWDIALOGSTYLE
  • If LenB(InitialDirectory) > 0 Then
  • .lpfn = ProcAddress(AddressOf BrowseCallbackProc)
  • End If
  • End With
  • lpIDList = SHBrowseForFolder(BI)
  • If lpIDList Then
  • sPath = String$(MAX_PATH, 0)
  • SHGetPathFromIDList lpIDList, sPath
  • CoTaskMemFree lpIDList
  • iNull = InStr(sPath, vbNullChar)
  • If iNull Then
  • sPath = Left$(sPath, iNull - 1)
  • End If
  • End If
  • BrowseForFolder = sPath
  • End Function
Private Sub Form_Load()
    MsgBox BrowseAndCreate("Veuillez selectionner votre Dossier.")
End Sub

Public Function BrowseAndCreate(Title As String) As String
    Dim Shell As Variant, Folder As Variant
    Set Shell = CreateObject("Shell.Application")
    Set Folder = Shell.BrowseForFolder(hWnd, Title, 0, "")
    BrowseAndCreate = Folder.items.Item.Path
End Function


'----------------------------------------------------------
OU
'----------------------------------------------------------

Public Function BrowseForFolder(Optional ByRef Title As String = "Please, select a directory", Optional ByRef InitialDirectory As String) As String
Dim iNull As Integer
Dim lpIDList As Long
Dim sPath As String
Dim BI As BROWSEINFO

    mBrowseFolder = InitialDirectory

    With BI
        .hwndOwner = 0
        .lpszTitle = lstrcat(Title, vbNullChar)
        .ulFlags = BIF_RETURNONLYFSDIRS Or BIF_NEWDIALOGSTYLE
        If LenB(InitialDirectory) > 0 Then
            .lpfn = ProcAddress(AddressOf BrowseCallbackProc)
        End If
    End With

    lpIDList = SHBrowseForFolder(BI)
    If lpIDList Then
        sPath = String$(MAX_PATH, 0)
        SHGetPathFromIDList lpIDList, sPath
        CoTaskMemFree lpIDList
        iNull = InStr(sPath, vbNullChar)
        If iNull Then
            sPath = Left$(sPath, iNull - 1)
        End If
    End If
    BrowseForFolder = sPath
End Function


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

13 janvier 2006 10:47:55 :
ajout d'un Zip

 Sources du même auteur

Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ...
Source avec Zip Source avec une capture JSON PARSER - ANALYSE DE CHAINES JSON
Source avec Zip Source avec une capture MODULE DE TÉLÉCHARGEMENT DE FICHIER BASIQUE (SYNCHRONE / ASY...
Source avec Zip COURS DE PILOTAGE........D'APPLICATIONS
Source avec Zip CSOCKET - REMPLACEZ WINSOCK PAR LA VERSION 2 DES API

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) MODIFIER LES EXTENSION DES FICHIERS par okosa
ROUTINE DIR RÉCURSIVE POUR OBTENIR LA LISTE DE TOUS LES FICH... par kerisolde
Source avec Zip Source avec une capture FILE,SECURITY,FICHIER par okosa
Source avec Zip Source avec une capture Source .NET (Dotnet) PATCHEUR DE FICHIER par tototh
Source avec Zip Source avec une capture LECTURE DES INFORMATIONS DES DISQUES COMPOSANT UN ENSEMBLE R... par jack

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture [VBS] COMMENT CRÉER UN DOSSIER ET LE PROTÉGER PAR MOT DE PAS... par hackoo
LISTER DOSSIER + SOUS DOSSIER + "PUBLICATION" TABLEAU HTML par Alexis28130
Source avec Zip Source avec une capture Source .NET (Dotnet) RENOMMER TOUS LES FICHIERS D'UN DOSSIER PAR CLIC DROIT par Le Pivert
Source avec Zip Source avec une capture [VBS] IMG2HTML RECHERCHER LES DIFFÉRENTS TYPES D'IMAGES ET L... par hackoo
LES DIFFÉRENTS TYPES DE RACCOURCIS EN VBS par djebbipgm

Commentaires et avis

Commentaire de lumesh le 22/10/2003 07:03:38

je connaissait la 2eme method mais pas la premiere ...
en vbs c deja bcp moins long ! :)

Commentaire de olid le 26/10/2003 21:39:28

Arf... javais mal compris (ou ya un bug)...

Jai cru que ce source affichait le selecteur de dossier avec dessus un bouton pour créer un dossier pendant la selection :o(

Bah... au moins, ce source aidera des debutants :op

Sinon, pour faire ce que je viens dire, faudrait pô faire une fonction callback, non ? Si oui, merci à qui pourra donner un exemple ;o)

Commentaire de Renfield le 26/10/2003 21:53:52 administrateur CS

Mais non, ca devrai fonctionner, il s'agit bien de ce que tu as decris......

Commentaire de olid le 26/10/2003 22:02:31

Bin perdu :o((

Jai windows 98SE ...je crois que le probleme vient du fait quil faudrait avoir Windows Scripting 5.6 qui est installé que sur 2000, Millenium, etc. 98 SE a seulement le 5.1, et 95 ou NT4 ne l'ont pô du tout.

Jai eu ce meme genre de pb pour créer des raccourcis ou favoris en VBS ;o(

A noter que cest le wshom.ocx et ses dépendances quil faut installer ;o|

Commentaire de lumesh le 26/10/2003 22:11:05

pour infos, le 5.6 est téléchargeable sur le site de microsoft.
le l'ai deja installé qd g t sous 98se avt.

Commentaire de ASSKICK le 26/11/2003 15:43:51

salut!
pour la première possibilité, que dois-je faire pour ne pas utiliser de type Variant?

Commentaire de Renfield le 26/11/2003 16:12:20 administrateur CS

C'est tout simplement un objet de type Folder.

Pour y avoir accès, tu dois lier la reference "Microsoft Scripting Runtime"

Commentaire de ASSKICK le 27/11/2003 12:56:12

pour le dossier c'est bon, c'est la variable shell qui coince.

Commentaire de ASSKICK le 27/11/2003 13:33:11

correction: le dossier c'est pas bon :(
si je défini le dossier ("Folder" renomé en "test") en tant que Folder, il me fait un type incompatible une fois que j'ai sélectionné le dossier

Commentaire de ASSKICK le 27/11/2003 14:02:46

OK c'est tout bon :) fallait mettre la référence "Microsoft Shell Controls And Automation" (shell32.dll)

le code un poil modifié donne ceci:

Option Explicit
Dim ShellObject As Shell
Dim SelectedFolder As Shell32.Folder
Dim FolderPath As String

Private Sub Form_Load()
    BrowseAndCreate
    MsgBox ("Dossier sélectionné: " & FolderPath)
    End
End Sub

Public Function BrowseAndCreate()
    Set ShellObject = New Shell
    Set SelectedFolder = ShellObject.BrowseForFolder(hWnd, "Veuillez selectionner votre Dossier. ", 0, 17)
    If (Not SelectedFolder Is Nothing) Then
        FolderPath = SelectedFolder.Items.Item.Path
    Else
        FolderPath = "Aucun dossier sélectionné"
    End If
    Set ShellObject = Nothing
    Set SelectedFolder = Nothing
End Function


merci beaucoup pour l'aide :)

Commentaire de mythic_kruger le 13/02/2005 10:59:41

Eh vous rigolez ou quoi... 5/10? Cette source est super elle mérite plus, rien que pour le Folder.items.Item.Path, qui est en soit assez pragmatique.

Commentaire de mythic_kruger le 13/02/2005 11:10:12

J' ai mis 10, du coup ça fait 7.

Commentaire de Renfield le 14/02/2005 09:21:30 administrateur CS

Merci ;)

Pas de soucis pour moi, tu sais, tant que ca fonctionne et que c'est utile a d'autres...

Commentaire de soldier8514 le 30/01/2006 23:29:28

oh pinaise ! c pile poil ce ke je cherchais ! merci

Commentaire de olivier857 le 12/02/2007 17:59:53

Bonjour et merci apparement ton code doit correspondre exactement à ce que je veus.

Cependant je n'arrive pas à le faire fonctionner.
Ca gueule sur le hWnd, j'ai une erreur de compilation : variable non définie.

une idée du pourquoi du comment ?

Commentaire de us_30 le 05/12/2007 23:31:19

Bonsoir,

La fonction "BrowseAndCreate" est élégeante, mais il est dommage qu'on ne puisse pas l'utiliser aussi pour la sélection d'un fichier... La solution proposée par ASSKICK étant fausse pour les fichiers...

Je n'arrive pas à faire marcher la version alternative (?) "BrowseForFolder", bien sur, cela bloque sur Dim BI As ... puisqu'on a rien qui défini tout cela...

J'ai tenté d'étudier cette fonction (BrowseAndCreate), et je vois quelques améliorations possibles.

Déjà, il faut mettre un ON ERROR RESUME NEXT, dans le code en cas d'action sur le bouton Annuler, pour un renvoi vide... au lieu d'un bug ! c'est mieux... Ensuite, en jouant sur les paramètres, la boite de sélection peut prendre plusieurs formes. Par exemple, avec une TextBox pour la sélection courante, ou même le titre peut changer... Sans avoir vraiment compris quelles sont les valeurs précises (plusieurs sont possibles), je propose une version complèté :

=

Public Enum vbConfigBrowse
    DirButtonCreateOKCancel = 0
    DirButtonCreateOKCancelTextBox = 16
    DirButtonCreateOKCancelInfo = 2500
    DirButtonOkCancelTextbox = 560
    DirButtonOkCancel = 550
    PrtButtonOkCancelTextbox = -1
End Enum

=

Public Function BrowseAndCreate(Title As String, Optional Config As vbConfigBrowse = 0) As String
    Dim Shell As Variant, Folder As Variant
    Set Shell = CreateObject("Shell.Application")
    On Error Resume Next
    Set Folder = Shell.BrowseForFolder(Hwnd, Title, Config, "")
    BrowseAndCreate = Folder.items.Item.Path
End Function

=

Sub essai()
    
    MsgBox BrowseAndCreate("Veuillez selectionner votre Dossier.", DirButtonCreateOKCancelTextBox)

End Sub

=

Maintenant, j'aimerais bien comprendre à fond cette fonction (ses paramètres), et j'aimerais savoir si on peut vraiment pas faire en sorte de choisir un fichier, ou est-ce irrémédiablement impossible ? Bizarrement, on peut choisir un fichier PDF, avec l'option -1 (printer)... peut-être parce j'ai une imprimante virtuelle pour la création des PDF ?...

J'ai vu que BruNews avait fait une DLL pour faire quel que chose de similaire, mais hélas, on ne peut pas (aussi) sélectionner un fichier, et globalement sa solution n'a pas encore l'élégeance de cette fonction, qui permet un menu contextuel, un bouton "Créer un dossier", etc.

Amicalement,
Us.

Commentaire de us_30 le 05/12/2007 23:43:54

Ouppsss... c'est pas ASSKICK mais facknrask sur la source : http://www.vbfrance.com/codes/COMMONDIALOG-POUR-SELECTIONNER-REPERTOIRE-OCX_35482.aspx

Us.

Commentaire de Sator le 05/12/2008 16:54:19 10/10

Merci, Merci , merci, et merci...

Je pense ne rien avoir oublié...

@+ Sator

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Selection de dossiers [ par panpan ] J'ai un petit problème,Pour mon programme j'ai besoin que l'utilisateur puisse sélectionner des dossier sur ses disque ou son stoquer des fichier et d choisir un dossier pour sauvegarder en vba [ par hasen ] Bonjour,Dans un de mes formulaire je dois effectuer une sauvegarde et je voudrais lorsque je clisue sur un bouton qu'une boite de dialogue apparaisse common dialog selection de dossier [ par erc77 ] Bonjour,je cherche une "common dialog" (si elle existe) pour selectionner un repertoire et en créer un nouveau .Merci par avanceErc Selection.find sur VBA Excel [ par daph ] j'utilise le code Selection.Find(What:=DOSSIER_CHERCHE, After:= ....pour trouver dans un fichier, la ligne contenant un n° de dossier (DOSSIER_CHERCH probleme de listage imbriqué de repertoire et fichier [ par Daydayer ] bonjour!j'ai un répertoire nommé PMS. celui-ci contient des repertoires types 'WPnumero-description', chacun de ces répertoir CommonDialog pour choisir un dossier ??? [ par websmiley ] Hello,je recherche un moyen pour ouvrir une CommonDialog afin de choisir un REPERTOIRE.Je m'explique un peu:Dans mon appli je voudrais qu'on puisse ch boie pour selection d'un chemin [ par culie3 ] Bonjour tout le monde, j'aurai voulu savoir comment faire ouvrir la petite fenètre qui permet de selectionner un dossier dans tout l'ordinateur (pas d choisir dossier, puis creer le chemin dans un txt [ par yago0nfs0tm091 ] Bonjour [^^happy13] Alors voila, sachant que je suis plus que débutant en vbscript, j'aimerais savoir s'il était possible de creer ce programme en vb pb convertir .xls en .dbf avec vba (code fournit) [ par emilekader ] salut, le code fournit ci dessous fonctionne en vba, j'ouvre un classeur excel puis le lance. La macro traite tous les fichiers d'un dossier mais le p pb convertir .xls en .dbf avec vba (code fournit) [ par emilekader ] salut, le code fournit ci dessous fonctionne en vba, j'ouvre un classeur excel puis le lance. La macro traite tous les fichiers d'un dossier mais le p


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,714 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales