choisir un systeme d'exploitation en vba ( recherche dans programme )

bruno66

XLDnaute Occasionnel
Bonsoir j'ai un fichier que je souhaite faire fonctionner sur 2 système d'exploitation mon souci sur un les programmes se trouve dans la partition D et dans l'autre dans la partition C
J'ai le code suivant dans mon vba ..
est'il possible de le modifier pour qu'il choisisse l'une ou l'autre partition suivant le PC ou je me connecte ( a savoir que dans mon pc a il se trouve dans le disque C et dans le pc B se trouve dans le disque D
je vous mets mon code actuelle dans ma feuille

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)




* *If Target.Column = 24 Then
* * * * On Error Resume Next
* * * * 'Workbooks.Open ActiveWorkbook.Path & "/couleur/" & Target.Value & ".pdf"
* * * *Shell ("c:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe " & ActiveWorkbook.Path & "\couleur\" & Target.Value & ".pdf"), vbMaximizedFocus

'mon autre programme se trouve
'Shell ("d:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe " & ActiveWorkbook.Path & "\couleur\" & Target.Value & ".pdf"), vbMaximizedFocus

* * * * If Err.Number <> 0 Then
* * * * * * Call MsgBox("Le fichier " & Chr(34) & " " & Target.Value & ".pdf " & Chr(34) & " n'éxiste pas dans le répertoire couleur.", vbCritical, "Manque fichier couleur")
* * * * * * Target.Select
* * * * End If
* * * * On Error GoTo 0
* * * * 'D:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe


merci d'avance de votre aide


je pense plus pour une question de système d'exploitation que d'excel mais on ne sait jamais
 
Dernière édition:
G

Guest

Guest
Re : choisir un systeme d'exploitation en vba ( recherche dans programme )

Bonjour,

Tu peux toujours essayer de trouver "Program Files" dans le contenu de la variable PATH.
Peut-être quelque chose comme ça:

Code:
Function ProgramFilesPAth() As String
'obtient la chaine de la variable d'environnement windows 'PATH'
Dim sPath As String: sPath = Environ("PATH")
'cherche  la chaine ":\Program Files\ dans le contenu du résultat
Dim pos As Byte: pos = InStr(1, sPath, ":\Program Files\")
'Si la chaine est trouvé retourne la lettre du lecteur suivit de la chaine program files
If pos > 0 Then ProgramFilesPAth = Mid(sPath, pos - 1, 1) & ":\Program Files\"
End Function



Ou
Code:
Function WichOne() As String
'Obtient la variable environement PATH
Dim sPath As String: sPath = UCase(Environ("PATH"))

'Cherche la lettre du lecteur et retourne éventuellement le résultat si trouvé
Select Case True
    Case InStr(1, sPath, "C:\") > 0: WichOne = "C:\"
    Case InStr(1, sPath, "D:\") > 0: WichOne = "D:\"
End Select
End Function

Ou imaginer une boucle sur toutes les lettres de l'alphabet:D
A+
 
Dernière modification par un modérateur:

bruno66

XLDnaute Occasionnel
Re : choisir un systeme d'exploitation en vba ( recherche dans programme )

bonsoir .. excuse moi mais pourriez vous s'il vous plait , me l'incorporer dans le code si dessus , je comprendrais mieus et de plus je devrais tout de meme l'adapter sur mon fichier car j'ai trois programmes qui fonctionne sous un meme code ;; donc faudra que j'adapte le code pour chaque code dans ma feuille .; merci de me mette les explication du fonctuionnement des ligne du code si c'est pas trop demande
merci du temps que vous prenez ,
 
G

Guest

Guest
Re : choisir un systeme d'exploitation en vba ( recherche dans programme )

Bonsoir,

Si tu as écris le code donné au post 1 tu devrais pouvoir comprendre avec l'aide VBA excel (touche F1 sur les mots VBA que tu ne connais pas).

A+

[Edit] J'ai rajouté quelques commentaires dans les fonctions données plus haut
 
Dernière modification par un modérateur:

Staple1600

XLDnaute Barbatruc
Re : choisir un systeme d'exploitation en vba ( recherche dans programme )

Bonsoir


Si je ne m'abuse, que tu loggues sur l'un ou l'autre des OS, si dans chaque OS, Acrobat est installé, normalement, le pdf s'ouvrira automatiquement selon les paramètres présents dans la registry et tutti frutti de chaque OS.

Voir ci-dessous
Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 10/01/2012 par l'agrafe
'
Dim MonPDF$
MonPDF = "C:\OUKYLEMONPDF.PDF"
Range("A1") = MonPDF
Range("A1").Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972