Probleme de script

Résolu
djfays Messages postés 2 Date d'inscription mercredi 10 janvier 2007 Statut Membre Dernière intervention 10 janvier 2007 - 10 janv. 2007 à 12:32
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 10 janv. 2007 à 16:28
Bonjour, j'ai un script qui se lançait bien sous win2000, en changeant de poste avec winxp, ce script met un message d'erreur à la ligne 62, type incompatible: 'Copyfile'

Pourriez vous m'aidez à solutionner ce bug, je vous joins le script, et merci d'avance:

Option Explicit


Const BIF_returnonlyfsdirs = &H0001
Const BIF_dontgobelowdomain = &H0002
Const BIF_statustext = &H0004
Const BIF_returnfsancestors = &H0008
Const BIF_editbox = &H0010
Const BIF_validate = &H0020
Const BIF_browseforcomputer = &H1000
Const BIF_browseforprinter = &H2000
Const BIF_browseincludefiles = &H4000


'*********************


Const BSF_desktop = 0 'Desktop is the root directory. With BIF_returnonlyfsdirs circumvents problem with OK-button
Const BSF_internetexplorer = 1 'Internet Explorer is the root
Const BSF_programs = 2 'Programs folder of the start menu is the root
Const BSF_controlpanel = 3 'Control Panel is the root. Needs BIF_browseincludefiles
Const BSF_printers = 4 'Printers folder is the root. Needs BIF_browseincludefiles
Const BSF_documents = 5 'Documentsfolder is the root
Const BSF_favorites = 6 'Favorites is the root
Const BSF_startup = 7 'Startup-folder of the startmenu is the root. Needs BIF_browseincludefiles
Const BSF_recent = 8 'Recentfolder is the root. Needs BIF_browseincludefiles
Const BSF_sendto = 9 'Sendto-folder is the root. Needs BIF_browseincludefiles
Const BSF_recyclebin = 10 'Recycle Bin is the root. Needs BIF_browseincludefiles
Const BSF_startmenu = 11 'Start Menu is the root
Const BSF_desktopdirectory = 16 'The Desktopdirectory is the root directory
Const BSF_drives = 17 'The drives (My computer) folder is the root
Const BSF_network = 18 'The networkneighbourhood is the root
Const BSF_nethood = 19 'The nethoodfolder is the root
Const BSF_fonts = 20 'The fontsfolder is the root
Const BSF_templates = 21 'The templatesfolder is the root


 


Dim strPath
strPath = BrowseForFolder("Sélectionnez une ETIQUETTE :", BIF_editbox + BIF_validate + BIF_browseincludefiles, BSF_desktop)


If IsNull(strPath) Then
     MsgBox "Selection invalide"
Else
     MsgBox strPath
End If




'*****************


Dim Shell
Dim FileSystem
Dim WSHNetwork
Dim WSHShell
Dim FileSysObj
Dim monimprimante


Set Shell = wscript.createObject("wscript.shell")
Set FileSystem = CreateObject("Scripting.FileSystemObject")
Set WSHNetwork = WScript.CreateObject("WScript.Network")
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set FileSysObj = CreateObject("Scripting.FileSystemObject")
'monimprimante = "[file://\\mavwprd123\MAVOPAO001 \\mavwprd123\MAVOPAO001]"


FileSysObj.Copyfile  strPath , "c:", True
Wscript.Echo "Impression envoyé !!!"
wshShell.Run "cmd /C copy c:\*.etiq [file://\\mavwprd123\MAVOPAO001 \\mavwprd123\MAVOPAO001] & sleep 5 & del c:\*.etiq /F /Q"


 


'*********************


Function BrowseForFolder(strPrompt, BrowseInfo, root)
     On Error Resume Next
     Dim objShell, objFolder, intColonPos, objWshShell, returnerror


     Set objShell = WScript.CreateObject("Shell.Application")
     Set objWshShell = CreateObject("WScript.Shell")
  
     Set objFolder = objShell.BrowseForFolder(&H0, strPrompt, BrowseInfo, "[file://\\mavslogys01\Logys\interface\descente\etiq\ \\mavslogys01\Logys\interface\descente\etiq\]")
    
     BrowseForFolder = objFolder.ParentFolder.ParseName(objFolder.Title).Path
 
     returnerror = err.number
     If returnerror <> 0 Then
          If returnerror = 424 then
               BrowseForFolder = Null
          else


               intColonPos = InStr(objFolder.Title, ":")


               If intColonPos > 0 Then
                    BrowseForFolder = Mid(objFolder.Title, intColonPos - 1, 2) & ""
               End If
          End If
     End If
End Function

5 réponses

cs_caramelmou Messages postés 56 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 23 avril 2008 3
10 janv. 2007 à 13:29
Peut être qu'il suffirait d'ajouter un  "*.etiq" après strPath (qui est en effet un chemin).
Ceci permet de copier sans message d'erreur tous les fichiers *.etiq à la racine, ce qui semble être le but du script (vu la suite).
 

Dr.T
3
djfays Messages postés 2 Date d'inscription mercredi 10 janvier 2007 Statut Membre Dernière intervention 10 janvier 2007 1
10 janv. 2007 à 14:11
en rajoutant "*.etiq" le message d'erreur a changé, toujours à la ligne 62 code erreur: 'fichirer introuvable'

Mon but est de récupérer via ce script un fichier se trouvant dans un répertoire serveur et de l'imprimer en local

cela marche avec un autre script qui me permet d'imprimer la totalité du répertoire, mais avec le second, le bug est avec un fichier choisi dans le répertoire.

Pourquoi sous win2000, ça marchait, et non pas avec winxp?????

Merci pour vos réponses.
1
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 janv. 2007 à 12:56
la ligne concernée est :  FileSysObj.Copyfile  strPath , "c:", True


ta source ne me semble pas correcte (un repertoire, et non un fichier)
ta cible ne me semble pas être correcte... (un repertoire)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
10 janv. 2007 à 13:20
Et peut-etre aussi un droit d'accès de l'utilisateur sur le fichier source ou le répertoire cible

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
10 janv. 2007 à 16:28
 Bonjour à tous

Bonjour djfays ,

Je me pose plusieurs questions:

Est-ce normal ?
If IsNull(strPath) Then
     MsgBox "Selection invalide"
     WScript.Quit
Else
     MsgBox strPath
End If

et je n'ai pas compris:
wshShell.Run "cmd /C copy c:\*.etiq [file://\\mavwprd123\MAVOPAO001 \\mavwprd123\MAVOPAO001] & sleep 5 & del c:\*.etiq /F /Q"
et d'ailleurs, pourquoi utilises-tu la commande "cmd" ?
Pour le BrowseForFolder, j'ai pas tout saisi, dont les constantes.

J'essaierai demain au boulot avec une imprimante réseau.

jean-marc
0
Rejoignez-nous