Bonjour,
J'ai développé un script pour copier un fichier présent sur un serveur en local.
Le voici :
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| 'CREATION DES OBJETS
Set object_exec_cmd = CreateObject("WScript.Shell")
Set objet_connect_lecteur = CreateObject("WScript.Network")
Set objet_copie = CreateObject("Scripting.FileSystemObject")
'CONNEXION DU LECTEUR RESEAU
Function Connexion()
Dim computername
'Récupération du nom de l'ordinateur
' computername = InputBox("Veuillez taper le nom de votre ordinateur svp (exemple FREL21524) :","Nom de votre ordinateur","")
'ligne_cmd_deco = "net use /delete N:"
'Call object_exec_cmd.Run (ligne_cmd_deco)
'Connexion du lecteur réseau
ligne_cmd_connexion = "net use N: \\frer0645\out"
Call object_exec_cmd.Run (ligne_cmd_connexion)
End function
'VERIFICATION LECTEUR RESEAU CONNECTE AVANT COPIE
function Verif()
Connexion()
do while objet_copie.DriveExists("N:") = false
loop
end function
Function Copie_fichier()
Dim oFolder
Dim objFolderItem
Dim objPath
Option_noFolderButton = &H200
Verif()
'BOX SELECTION
Set objDialog=CreateObject("SAFRCFileDlg.FileOpen")
ObjDialog.OpenFileOpenDlg
'Récupération du chemin du fichier à copier
fichier_copie=objDialog.FileName
'BOX DESTINATION
Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.BrowseForFolder(0, "Selectionner le répertoire de destination",Option_noFolderButton,"")
'Récupération du chemin du répertoire de destination
If (not oFolder is nothing) then
Set objFolderItem = oFolder.Self
rep_dest = objFolderItem.Path
End if
'Copie du fichier du serveur vers le répertoire en local
objet_copie.CopyFile fichier_copie,rep_dest,True
MsgBox "Le fichier est copié."
' Set oFolder = nothing
'Set oShell = nothing
'Set objDialog=Nothing
End function
'PROCEDURE PRINCIPALE
Sub DownloadFile()
Copie_fichier()
End Sub |
Pour situer le contexte, j'ai crée un objet bouton avec le logiciel QLIKVIEW et attribué cette macro à ce bouton. Ensuite, l'utilisateur clique sur le bouton, voit la première fenêtre de choix de fichier puis choisit ensuite le dossier de destination en local.
Mon problème intervient à ce moment la. Alors que le fichier se copie très bien si je choisis le disque C:\ ou D:\ qui possèdent exactement les mêmes groupes de droits et options cochées dans l'onglet Sécurité, lorsque je crée un dossier n'importe où en lui allouant les mêmes groupes de droits et options, la copie échoue

Il en ai de même si je crée un dossier qui est sous-dossier de D:\ par exemple et qui hérite des droits de D:\
Je ne comprends pas pourquoi la copie plante. Je ne suis pas très calé en "droits" Windows et j'aimerai bien comprendre pourquoi en allouant les même droits que sur les disques, le dossier ne convient pas. Il doit y avoir une manip que je ne fais pas ...
Merci d'avance.
Johan