Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1740 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Box "parcourir" en vbs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Box "parcourir" en vbs

n°1139126
jnauche
Posté le 04-07-2005 à 11:12:12  profilanswer
 

Bonjour je cherche une box en vbs qui permet de parcourir le disque. je n'ai que la inputbox qui permet uniquement de mettre du texte, mais je voudrais (si ca existe) une boite qui permette de choisir le dossier ou l'on veut sauvegarder son fichier.
 
Merci, julien

mood
Publicité
Posté le 04-07-2005 à 11:12:12  profilanswer
 

n°1139604
EscartePhi​l
Posté le 04-07-2005 à 17:33:38  profilanswer
 

Salut, je sais pas ce que tu entends par vbs mais avec vb(excel) la code suivant permet d'aller choisir un fichier et de récupérer l'adresse sur le disque dur.
 
chemin = Application.GetOpenFilename("All Files (*.*),*.*", , "choix du fichier", , True)
@+

n°1139793
c_moa
Posté le 04-07-2005 à 21:35:41  profilanswer
 

J'ai écrit code suivant il y a quelques mois ( préparartion de scripts pour du 2003 server )
 
 
'===================================================
' la fonction suivante permet de choisir un fichier
' Elle retourne  le chemin\nomdufichier
' ou "ANNUL" si appui sur le bouton annuler
'
 
Function select_a_file(direct)
Set objDialog = CreateObject("UserAccounts.CommonDialog" )
 
objDialog.Filter = "Fichiers Excel|*.xls|All Files|*.*"
objDialog.Flags = &H0200
objDialog.FilterIndex = 1
objDialog.InitialDir = direct
intResult = objDialog.ShowOpen
 
If intResult = 0 Then
    select_a_file = "ANNUL"
Else
    select_a_file = objDialog.FileName
End If
End Function

 
 
Big problème : cela ne fonctionne pas sur du 2003 server.
 
 
 
Mais il y a la solution qui fonctionne à la fois sur du xp et du 2003 server  
( à tester sur du 2000 )  
 
set objDialog = CreateObject("SafrcFileDlg.FileOpen" )
objDialog.OpenFileOpenDlg
wscript.echo objDialog.FileName

 

n°1139975
pelw
Posté le 05-07-2005 à 07:02:29  profilanswer
 

Bonjour,
 
Essaye éventuellement ceci :
 

Code :
  1. ReturnOnlyFSDirs = &H0001
  2. Set oShell = WScript.CreateObject("Shell.Application" )
  3. Title = "Veuillez sélectionner un dossier"
  4. Flags=ReturnOnlyFSDirs
  5. 'InitDir = "C:\" '<-- Adapter selon les besoins
  6. Set Item = oShell.BrowseForFolder(0, Title, Flags, InitDir)
  7. If Not Item Is Nothing Then
  8.    Result=Item.Title
  9.    If InStr(1, Result, ":" ) = 0 Then
  10.       Result=Item.ParentFolder.ParseName(Item.Title).Path
  11.    End If
  12.    MsgBox "Dossier sélectionné : " & Result, vbInformation, Title
  13. Else
  14.    MsgBox "Aucun dossier n'a été sélectionné !", vbExclamation, Title
  15. End If
  16. Set oShell = Nothing


 
pelw

n°1140174
c_moa
Posté le 05-07-2005 à 11:31:28  profilanswer
 

Citation :

une boite qui permette de choisir le dossier


 
Oups ! ce que j'ai donné est pour la sélection d'un fichier
 
 
le code de pelw ( source ? JCBellamy ? ) est un bon début, mais plante ( chez moi sous xp ) si tu sélectionnes
un dossier tel "poste de travail" ou "mes documents" ( la sélection d'un sous dossier est OK ).
J'ai modifié le code afin qu'il ne plante pas.
 
 
 

Code :
  1. aze = select_a_folder("Sélectionner un dossier,"c:\" )
  2. wscript.echo "On a choisi : " & aze
  3. '===================================================
  4. ' la fonction suivante permet de choisir un dossier
  5. ' Elle retourne "ANNUL" si appuie sur le bouton annuler
  6. '
  7. Function select_a_folder(message,directory)
  8. Const WINDOW_HANDLE = 0
  9. Const NO_OPTIONS = 0
  10. Set objShell = CreateObject("Shell.Application" )
  11. Set objFolder = objShell.BrowseForFolder _
  12.     (WINDOW_HANDLE, message , NO_OPTIONS, directory)
  13. On Error Resume Next
  14. Set objFolderItem = objFolder.Self
  15. If Err <> 0 Then
  16.         select_a_folder = "ANNUL"
  17. Else
  18.         select_a_folder = objFolderItem.Path
  19. end if
  20. On Error GoTo 0
  21. End Function


Message édité par c_moa le 05-07-2005 à 11:32:42
n°1141942
jnauche
Posté le 06-07-2005 à 12:59:04  profilanswer
 

pelw a écrit :

Bonjour,
 
Essaye éventuellement ceci :
 

Code :
  1. ReturnOnlyFSDirs = &H0001
  2. Set oShell = WScript.CreateObject("Shell.Application" )
  3. Title = "Veuillez sélectionner un dossier"
  4. Flags=ReturnOnlyFSDirs
  5. 'InitDir = "C:\" '<-- Adapter selon les besoins
  6. Set Item = oShell.BrowseForFolder(0, Title, Flags, InitDir)
  7. If Not Item Is Nothing Then
  8.    Result=Item.Title
  9.    If InStr(1, Result, ":" ) = 0 Then
  10.       Result=Item.ParentFolder.ParseName(Item.Title).Path
  11.    End If
  12.    MsgBox "Dossier sélectionné : " & Result, vbInformation, Title
  13. Else
  14.    MsgBox "Aucun dossier n'a été sélectionné !", vbExclamation, Title
  15. End If
  16. Set oShell = Nothing


 
pelw


 
 
Ici aussi je dois te remercié pelw moi ton code marche bien (je n'ai pas tester le tient c moa car je ne comprend pas les deux arguments qu'il faut mettre dans la fonction), mais par contre j'ai changer le dosser de depart c'est a dire que j'ai mis : InitDir = WshShell.SpecialFolders("MyDocuments" ).
Ce qui marche tres bien, je me retrouve directement dans mes documents, mais le probleme est qu'ensuite l'utilisateur ne peut pas vraiement parcourir son ou ses disk durs, il ne peut aller que dans les repertoires fils et pas dans les parents. Ce qui pose probleme car j'ai pour contrainte d'etre par default dans le dossier my documents mais l'utilisateur doit pouvoir sauvegarder son fichier dans n'importe quel endroit de ses disk.
 
Cordialement julien

n°1142732
c_moa
Posté le 06-07-2005 à 23:03:39  profilanswer
 

Petite mistake de ma part, j'ai oublié un " pour la chaine de caractère passée en paramètre.
 
 

Code :
  1. chemin = select_a_folder("Veuiller sélectionner un dossier","c:\" )
  2. ' chemin = select_a_folder("Veuiller sélectionner un dossier","" )
  3. ' le "" permet d'avoir l'arborescence complète
  4. wscript.echo "Le Dossier choisi est : " & chemin
  5. '===================================================
  6. ' la fonction suivante permet de choisir un dossier
  7. ' Elle retourne "ANNUL" si appuie sur le bouton annuler
  8. ' paramètres : message à afficher, directory : dossier ...
  9. Function select_a_folder(message,directory)
  10. Const WINDOW_HANDLE = 0
  11. Const NO_OPTIONS = 0
  12. Set objShell = CreateObject("Shell.Application" )
  13. Set objFolder = objShell.BrowseForFolder _
  14.     (WINDOW_HANDLE, message , NO_OPTIONS, directory)
  15. On Error Resume Next
  16. Set objFolderItem = objFolder.Self
  17. If Err <> 0 Then
  18.         select_a_folder = "ANNUL"
  19. Else
  20.         select_a_folder = objFolderItem.Path
  21. end if
  22. On Error GoTo 0
  23. End Function


 
 
 
Sinon, sauf bizarrerie uniquement sur mes postes ( xp pro sp2 + maj ), on obtient une erreur avec le code proposé par  Pelw si on sélectionne bureau ou poste de travail et que l'on valide ( certains dossiers particuliers ).
 
Si vous avez ou n'avez pas d'erreurs sur les différents codes ci-dessus , merci d'avance pour vos remarques.


Message édité par c_moa le 07-07-2005 à 11:46:15
n°1143201
jnauche
Posté le 07-07-2005 à 13:42:03  profilanswer
 

c_moa a écrit :

Petite mistake de ma part, j'ai oublié un " pour la chaine de caractère passée en paramètre.
 
 

Code :
  1. chemin = select_a_folder("Veuiller sélectionner un dossier","c:\" )
  2. ' chemin = select_a_folder("Veuiller sélectionner un dossier","" )
  3. ' le "" permet d'avoir l'arborescence complète
  4. wscript.echo "Le Dossier choisi est : " & chemin
  5. '===================================================
  6. ' la fonction suivante permet de choisir un dossier
  7. ' Elle retourne "ANNUL" si appuie sur le bouton annuler
  8. ' paramètres : message à afficher, directory : dossier ...
  9. Function select_a_folder(message,directory)
  10. Const WINDOW_HANDLE = 0
  11. Const NO_OPTIONS = 0
  12. Set objShell = CreateObject("Shell.Application" )
  13. Set objFolder = objShell.BrowseForFolder _
  14.     (WINDOW_HANDLE, message , NO_OPTIONS, directory)
  15. On Error Resume Next
  16. Set objFolderItem = objFolder.Self
  17. If Err <> 0 Then
  18.         select_a_folder = "ANNUL"
  19. Else
  20.         select_a_folder = objFolderItem.Path
  21. end if
  22. On Error GoTo 0
  23. End Function


 
 
 
Sinon, sauf bizarrerie uniquement sur mes postes ( xp pro sp2 + maj ), on obtient une erreur avec le code proposé par  Pelw si on sélectionne bureau ou poste de travail et que l'on valide ( certains dossiers particuliers ).
 
Si vous avez ou n'avez pas d'erreurs sur les différents codes ci-dessus , merci d'avance pour vos remarques.


 
Tres bien merci, moi ca amrche nikel. Mais j'voue que je suis un peu pointilleux, je voudrais avoir en realité une fenetre qui soit deja sur "mes documents" par exemple mais qu'ensuite on puisse remonter dans l'arborescence... Et aussi si c possible un bouton "bureau" integrer a la fenetre... Je sais je commence a etre relou, mais je me demande si c'est pas possible changeant la valeur des constantes "no options"

n°1147828
jnauche
Posté le 12-07-2005 à 13:58:14  profilanswer
 

c_moa a écrit :

Petite mistake de ma part, j'ai oublié un " pour la chaine de caractère passée en paramètre.
 
 

Code :
  1. chemin = select_a_folder("Veuiller sélectionner un dossier","c:\" )
  2. ' chemin = select_a_folder("Veuiller sélectionner un dossier","" )
  3. ' le "" permet d'avoir l'arborescence complète
  4. wscript.echo "Le Dossier choisi est : " & chemin
  5. '===================================================
  6. ' la fonction suivante permet de choisir un dossier
  7. ' Elle retourne "ANNUL" si appuie sur le bouton annuler
  8. ' paramètres : message à afficher, directory : dossier ...
  9. Function select_a_folder(message,directory)
  10. Const WINDOW_HANDLE = 0
  11. Const NO_OPTIONS = 0
  12. Set objShell = CreateObject("Shell.Application" )
  13. Set objFolder = objShell.BrowseForFolder _
  14.     (WINDOW_HANDLE, message , NO_OPTIONS, directory)
  15. On Error Resume Next
  16. Set objFolderItem = objFolder.Self
  17. If Err <> 0 Then
  18.         select_a_folder = "ANNUL"
  19. Else
  20.         select_a_folder = objFolderItem.Path
  21. end if
  22. On Error GoTo 0
  23. End Function


 
 
 
Sinon, sauf bizarrerie uniquement sur mes postes ( xp pro sp2 + maj ), on obtient une erreur avec le code proposé par  Pelw si on sélectionne bureau ou poste de travail et que l'on valide ( certains dossiers particuliers ).
 
Si vous avez ou n'avez pas d'erreurs sur les différents codes ci-dessus , merci d'avance pour vos remarques.


 
 
Bonjour j'avais travailler sur d'autres trucs ses derniers jours mais j'ai aps fini de vous emebeter. Dans cette fenetre parcourrir j'aimerai y ajouter des boutons du type "parent folder" ou "bureau" etc... Quelqu'un pourrai m'aider la dessus?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Box "parcourir" en vbs

 

Sujets relatifs
parcourir une variableForcer un format de fichier dans un champ parcourir ?
bouton parcourir avec microsoft vbParcourir un vecteur
Problème avec "Visual Text Box"Win32 - parcourir la pile utilisateur d'un thread
[batch]Parcourir une chaîne de caractère[HTML] Bouton parcourir
[C#] connaitre le nombre de ligne sans parcourir fichier[algo] algo non recursif pour parcourir les niveaux d'un arbre
Plus de sujets relatifs à : Box "parcourir" en vbs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR