OVH Cloud OVH Cloud

BrowseForFolder

26 réponses
Avatar
Gilles RONSIN
Salut,

je m'amuse à créér un générateur de raccourci dossier nouvelle
formule (target.lnk) et j'ai des soucis avec la fonction
BrowseForFolder.

Je me suis fortement (même complêtement) inspiré de l'exemple de JCB
http://www.bellamyjc.org/fr/vbsavance.html#selectfolder (au fait si
tu lis tu as titre="...." suivi de shell.BrowseForFolder(0,title,...)
)

mais quand j'exécute


Set Item=shellApp.BrowseForFolder(0,"Dossier où placer la cible du
dossier """ & folder & """", &h0001 ,"")

If isvalue(Item) then
Lnk=Item.Title
wscript.echo "lnk=" & lnk
If InStr(1,Lnk,":")=0 Then
Lnk=Item.ParentFolder.ParseName(Item.Title).Path & ""
End If
wscript.echo "sélectionné : " & lnk
Else
wscript.quit
End If

j'ai l'erreur
Objet requis: 'Item.ParentFolder.ParseName(...)'

Pouvez vous m'en dire plus ?
Merci

--
Embryon de site : http://gilles.ronsin.free.fr
Nouvelles astuces : Interprêtation des évenements XP en "français"
(trad auto)
Il est impossible pour un optimiste d'être agréablement surpris.

10 réponses

1 2 3
Avatar
scraper
Bonjour Gilles RONSIN
(dans news:)
tu nous disais :

Salut,

je m'amuse à créér un générateur de raccourci dossier nouvelle
formule (target.lnk) et j'ai des soucis avec la fonction
BrowseForFolder.

Je me suis fortement (même complêtement) inspiré de l'exemple de JCB
http://www.bellamyjc.org/fr/vbsavance.html#selectfolder (au fait si
tu lis tu as titre="...." suivi de shell.BrowseForFolder(0,title,...)
)

mais quand j'exécute


Set Item=shellApp.BrowseForFolder(0,"Dossier où placer la cible du
dossier """ & folder & """", &h0001 ,"")

If isvalue(Item) then
Lnk=Item.Title
wscript.echo "lnk=" & lnk
If InStr(1,Lnk,":")=0 Then
Lnk=Item.ParentFolder.ParseName(Item.Title).Path & ""
End If
wscript.echo "sélectionné : " & lnk
Else
wscript.quit
End If

j'ai l'erreur
Objet requis: 'Item.ParentFolder.ParseName(...)'

Pouvez vous m'en dire plus ?
Merci


peut être parce que ton fichier sélectionné se trouve à la racine d'un
disque, non ??
essaie pour commencer avec un fichier dans un sous rep' ??

je crois que ça vient de là ? ;-)



--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper

Avatar
Gilles RONSIN
"scraper" , le mar. 31 août 2004 09:50:37,
écrivait ceci:

Salut Scraper,

peut être parce que ton fichier sélectionné se trouve à la racine
d'un disque, non ??


Ben non justement (je teste avec mon bureau) et d'ailleurs JCB y a
pensé puisque

If InStr(1,Lnk,":")=0 Then
Lnk=Item.ParentFolder.ParseName(Item.Title).Path & ""
End If


essaie pour commencer avec un fichier dans un sous rep' ??

je crois que ça vient de là ? ;-)


Il me ferait Objet requis ?

--
Embryon de site : http://gilles.ronsin.free.fr
Nouvelles astuces : Interprêtation des évenements XP en "français"
(trad auto)
Il est impossible pour un optimiste d'être agréablement surpris.


Avatar
scraper
Bonjour Gilles RONSIN
(dans news:)
tu nous disais :

Ben non justement (je teste avec mon bureau) et d'ailleurs JCB y a
pensé puisque

If InStr(1,Lnk,":")=0 Then
Lnk=Item.ParentFolder.ParseName(Item.Title).Path & ""
End If




ah ouais, effectivement, j'avais lu trop vite ;-)

à quoi correspond Shell.App dans ton code ?
Set Item=shellApp.BrowseForFolder(0,"Dossier où placer la cible du dossier
""" & folder & """", &h0001 ,"")



--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper



Avatar
Jean-Claude BELLAMY
Dans le message news: ,
Gilles RONSIN s'est ainsi exprimé:

Salut,

je m'amuse à créér un générateur de raccourci dossier nouvelle
formule (target.lnk) et j'ai des soucis avec la fonction
BrowseForFolder.

Je me suis fortement (même complêtement) inspiré de l'exemple de JCB
http://www.bellamyjc.org/fr/vbsavance.html#selectfolder (au fait si
tu lis tu as titre="...." suivi de shell.BrowseForFolder(0,title,...)
)


Exact ! Lapsus calimi de ma part ...
Mais dans le script lui-même
(http://www.bellamyjc.org/download/vbs/testdialog.vbs) il n'y a pas d'erreur
Set Item = shell.BrowseForFolder(0,titre,flag, dirinit)



mais quand j'exécute


Set Item=shellApp.BrowseForFolder(0,"Dossier où placer la cible du
dossier """ & folder & """", &h0001 ,"")

If isvalue(Item) then
Lnk=Item.Title
wscript.echo "lnk=" & lnk
If InStr(1,Lnk,":")=0 Then
Lnk=Item.ParentFolder.ParseName(Item.Title).Path & ""
End If
wscript.echo "sélectionné : " & lnk
Else
wscript.quit
End If

j'ai l'erreur
Objet requis: 'Item.ParentFolder.ParseName(...)'

Pouvez vous m'en dire plus ?



As-tu bien déclaré
Set shell = WScript.CreateObject("Shell.Application")

As-tu bien recopié ma fonction "Isvalue" ?

Je viens de télécharger mon script depuis mon site (pour être sûr), je l'ai
exécuté : impeccable !

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *


Avatar
Gilles RONSIN
"scraper" , le mar. 31 août 2004 10:32:07,
écrivait ceci:

Re,

à quoi correspond Shell.App dans ton code ?
Set Item=shellApp.BrowseForFolder(0,"Dossier où placer la cible du
dossier """ & folder & """", &h0001 ,"")


Set ShellApp = Wscript.CreateObject("Shell.Application")
pour differentier du
Set Shell = WScript.CreateObject("WScript.Shell")


--
Embryon de site : http://gilles.ronsin.free.fr
Nouvelles astuces : Interprêtation des évenements XP en "français"
(trad auto)
Il est impossible pour un optimiste d'être agréablement surpris.

Avatar
Gilles RONSIN
"Jean-Claude BELLAMY" , le mar. 31
août 2004 11:37:38, écrivait ceci:

Hi Jean Claude,

As-tu bien déclaré
Set shell = WScript.CreateObject("Shell.Application")
Oui


As-tu bien recopié ma fonction "Isvalue" ?
Oui


Je viens de télécharger mon script depuis mon site (pour être
sûr), je l'ai exécuté : impeccable !


Je viens de faire la même chose....
... même erreur pour moi.

C:Documents and SettingsGillesBureautestdialog.vbs(20, 3) Erreur
d'exécution
Microsoft VBScript: Objet requis: 'ParentFolder.ParseName(...)'

Bon.
Il ne reste que 2 hypothèses :
- mon moteur de script est corrompu
- un outils quelconque style KillBit à la "Jack" bloque certaines
fonctions de scripting.

--
Embryon de site : http://gilles.ronsin.free.fr
Nouvelles astuces : Interprêtation des évenements XP en "français"
(trad auto)
Il est impossible pour un optimiste d'être agréablement surpris.

Avatar
Jean-Claude BELLAMY
Dans le message news: ,
Gilles RONSIN s'est ainsi exprimé:

"Jean-Claude BELLAMY" , le mar. 31
août 2004 11:37:38, écrivait ceci:
[...]
Je viens de télécharger mon script depuis mon site (pour être
sûr), je l'ai exécuté : impeccable !


Je viens de faire la même chose....
... même erreur pour moi.

C:Documents and SettingsGillesBureautestdialog.vbs(20, 3) Erreur
d'exécution
Microsoft VBScript: Objet requis: 'ParentFolder.ParseName(...)'

Bon.
Il ne reste que 2 hypothèses :
- mon moteur de script est corrompu
- un outils quelconque style KillBit à la "Jack" bloque certaines
fonctions de scripting.


Vraiment bizarre !

Dans ce cas là, j'applique cette méthode agricole :
tracer les variables !

P.ex. après la ligne 17 ( Result=Item.Title) ajouter :
wscript.echo "Result=" & result

après la ligne 19 (If InStr(1,Result,":")=0 Then) ajouter :
wscript.echo ": non trouvé dans la chaine"


etc ...

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *



Avatar
Gilles RONSIN
"Jean-Claude BELLAMY" , le mar. 31 août
2004 12:12:29, écrivait ceci:

Hi,

Dans ce cas là, j'applique cette méthode agricole :
tracer les variables !

P.ex. après la ligne 17 ( Result=Item.Title) ajouter :
wscript.echo "Result=" & result

après la ligne 19 (If InStr(1,Result,":")=0 Then) ajouter :
wscript.echo ": non trouvé dans la chaine"
Vi ça c'est fait depuis le début ;-)


c'est bien la fonction qui est endommagée, je viens d'essayer le script
sur un W98, et à priori la fonction est réalisée.
Si tu veux vérifier voici le code :

--------------------------------------------------------------------
'Création d'une cible sur un dossier
'Script très fortement inspiré de ceux disponibles ici
'http://www.bellamyjc.org/fr/vbsdownload.html
'
Dim Shell, fso, args, lnk, folder

Set ShellApp = Wscript.CreateObject("Shell.Application")
Set Shell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set args=Wscript.Arguments
If args.Count=0 then
'msgbox "Syntaxe : " & vbCrLf & "TargetLnk.vbs <chemin_dossier>"
folder="C:download"
else
folder=args(0)
end if

If not fso.FolderExists(folder) then
msgbox """" & folder & """ n'est pas un dossier existant",,"Erreur
"
wscript.quit
end if

Set Item=shellApp.BrowseForFolder(0,"Dossier où placer la cible du
dossier """ & folder & """", &h0001 ,"")

If isvalue(Item) then
Lnk=Item.Title
wscript.echo "lnk=" & lnk
If InStr(1,Lnk,":")=0 Then
Lnk=Item.ParentFolder.ParseName(Item.Title).Path & ""
End If
wscript.echo "sélectionné : " & lnk
Else
wscript.quit
End If

For i=Len(folder) to 1 step -1
If Mid(folder,i,1)="" Then Exit For
Next
folder=Mid(folder,i)

wscript.echo "dossier : " & lnk & folder

Set oFolder=fso.CreateFolder (lnk & folder)
oFolder.Attributes=4
Set oFolder=Nothing

Set oLink=Shell.CreateShortcut(lnk & folder & "target.lnk")
oLink.TargetPath=folder
oLink.Save
Set oLink=Nothing

Set oTs=fso.CreateTextFile(lnk & folder & "desktop.ini")
oTs.WriteLine "[.ShellClassInfo]"
oTs.WriteLine "CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}"
oTs.WriteLine "Flags=2"
oTs.WriteLine "ConfirmFileOp=0"
oTs.Close

Set lnk=Nothing
Set folder=Nothing
Set fso=Nothing
Set Shell=Nothing
Set ShellApp=Nothing

Wscript.Quit
'-------------------------------
Function IsValue(obj)
Dim tmp
On Error Resume Next
tmp="" & obj
If Err<>0 Then IsValueúlse Else IsValue=True
On Error Goto 0
End Function
-----------------------------------------------------------------------
--

--
Embryon de site : http://gilles.ronsin.free.fr
Nouvelles astuces : Interprêtation des évenements XP en "français"
(trad auto)
Il est impossible pour un optimiste d'être agréablement surpris.

Avatar
Jean-Claude BELLAMY
Dans le message news: ,
Gilles RONSIN s'est ainsi exprimé:

Si tu veux vérifier voici le code :
[...]


J'ai essayé ton script : il fonctionne de façon nasodigitale !
Aucune erreur ...


Donc le bug chez toi n'est pas dans ce script, mais ailleurs ...


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *


Avatar
Gilles RONSIN
"Jean-Claude BELLAMY" , le mar. 31 août
2004 13:41:25, écrivait ceci:

Salut

J'ai essayé ton script : il fonctionne de façon nasodigitale !
Aucune erreur ...


facile, j'en ai pompé pratiquement tout le code à un certain JCB :-p

Donc le bug chez toi n'est pas dans ce script, mais ailleurs ...


C'est parti pour réouvrir les X-Files......
Merci pour tout

--
Embryon de site : http://gilles.ronsin.free.fr
Nouvelles astuces : Interprêtation des évenements XP en "français"
(trad auto)
Il est impossible pour un optimiste d'être agréablement surpris.

1 2 3