Bonjour,
je vais essayer de faire court, surtout que je ne suis pas spécialiste de scripts vbs.
Ma société utilise un script pour transférer des fichiers d'un moyen système vers excel et ouvre directement le fichier excel généré sur le PC utilisateur.
Je vous passe les détails génération du fichier excel car tout se passe bien et c'est pas le propos.
Mais c'était une population de PC sous XP.
Depuis que nous sommes passés sous W7, les scripts qui contenaient le lancement d'excel ne marchent plus.
Voici le code concerné : (extraits)
Partie init:
Partie programme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim fso, WshShell Dim fileout_set Dim Cmd, ArReg(2), s, ArReg(0) = "Open" ArReg(1) = "Edit" Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set WshShell = WScript.CreateObject("WScript.Shell")
call LectureRegistre
Sous Programme appelé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cmd = "%COMSPEC% /c " & cmd & " " & fileout WshShell.Run cmd, 0, False
Mais ca ne marche pas mieux, pas d'erreur, mais pas d'ouverture du fichier excel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Function LectureRegistre cmd = VbEmpty s = 0 For s = 0 to 1 On Error Resume Next cmd = WshShell.RegRead ("HKEY_CLASSES_ROOT\Applications\Excel.exe\shell\" & ArReg(s) & "\command\") if Cmd <> VbEmpty Then Exit Function End If Next End Function ---------------- J'ai essayé de ne pas toucher au sous-programme et j'avais remplacé le code (Programme) par : If fso.FolderExists("C:\Program Files") Then call LectureRegistre cmd = "%COMSPEC% /c " & cmd & " " & fileout ELSE cmd = "C:\Program Files (x86)\Microsoft Office\Office14\excel.exe " & "/E " & fileout cmd = "%COMSPEC% /c " & cmd End If
Bienvenue à toutes les aides ou commentaireset merciiiiiiiiiiiiii
Partager