De mon programme compilé sous Visual Basic je veux appeler un fichier d'aide qui est au format pdf.
J'ai résolu partiellement le problème avec la fonction Shell.
Malheuresement il faut tout préciser !!! 1/ l'adresse d'adobe reader et 2/ celle du fichier !!
Cela est très lourd car tous le monde ne met pas ses programmes sur c: et ne suivent pas toujours mon schèma de répertoire.
Par exemple si on utilise indiférament trois disques c, d ou e pour mon application j'écris :
If disk$ = "c:" Or disk$ = "C:" Then
retval = Shell("C:\Adobe\Reader 9.0\Reader\AcroRd32.exe c:\sbwin\sbwinGB.pdf", 1)
End If
If disk$ = "d:" Or disk$ = "D:" Then
retval = Shell("C:\Adobe\Reader 9.0\Reader\AcroRd32.exe d:\sbwin\sbwinGB.pdf", 1)
End If
If disk$ = "e:" Or disk$ = "E:" Then
retval = Shell("C:\Adobe\Reader 9.0\Reader\AcroRd32.exe e:\sbwin\sbwinGB.pdf", 1)
End If
En admettant qu'Adobe soit sur le disque c: !
Ceci n'est donc pas transportable d'un pc à un autre. Imaginez que l'utilisateur lambda installe sur N:
J'utilise VBA 6 sur XP pro. Ce programme est compatible du 98 à Vista !
La fonction shell ne supporte aucune variable comme disk$ ! A moins qu'il y est une astuce?
L'astuce est toute bête, en fait tu peux fabriquer ta ligne de commande dans une variable string et la mettre dans ta fonction shell par la suite du style
[code]
dim cmd,fich as string
cmd = "c:\.......\" & fich & "\xxxxxxx.exe"
ret = shell(cmd,1)
[\code]