OVH Cloud OVH Cloud

Logiciel qui ouvre les JPG ?

6 réponses
Avatar
jules
Bonjour,

Sous excel, je souhaiterais pouvoir r=E9cup=E9rer le chemin et=20
le nom du .exe qui sert =E0 ouvrir les JPG.
Cela me permettrais d'utiliser la commande "shell" et
de pouvoir dans une macro ouvrir ce logiciel pour ouvrir=20
l'image...

Sinon si vous avez un moyen d'acc=E9der =E0 la base de=20
registre via Excel , je suis preneur car ensuite je=20
pourrais me d=E9brouiller :)

Merci de votre aide

6 réponses

Avatar
Alain CROS
Bonjour.

Private Declare Function FindExecutable& _
Lib "Shell32" Alias "FindExecutableA" _
(ByVal lpFile$, ByVal lpDirectory$, ByVal lpResult$)

Sub Demo_FindExecutable()
Dim Ext$, Prog$, Msg$, BlaBla$
BlaBla = "Utilisation de FindExecutable"
Ext = InputBox("Entrer une extension de fichier", BlaBla, "jpg")
If Ext <> "" Then
If TrouveEXE(Ext, Prog) Then
Msg = "Le progamme associé à " & Ext & " est :" & _
vbNewLine & vbNewLine & Prog
Else
Msg = "Aucune association pour " & Ext
End If
Else
Msg = "Opération annulée"
End If
MsgBox Msg, vbInformation, BlaBla
End Sub

Function TrouveEXE&(ByVal Ext$, ByRef Prog$)
Dim LeFile$, nFich%, Exist As Boolean
Const MAX_PATH& = 260&
Prog = Space$(MAX_PATH)
nFich = FreeFile
LeFile = "nFich" & nFich & "." & Ext
Exist = Dir$(LeFile) <> vbNullString
Open LeFile For Output As nFich
Close nFich
If FindExecutable(LeFile, vbNullString, Prog) > 32& Then
Prog = Left$(Prog, InStr(Prog, vbNullChar) - 1&)
TrouveEXE = True
End If
If Not Exist Then Kill LeFile
End Function

Alain CROS

"jules" a écrit dans le message de news: 0c1d01c5037d$c1c2c690$
Bonjour,

Sous excel, je souhaiterais pouvoir récupérer le chemin et
le nom du .exe qui sert à ouvrir les JPG.
Cela me permettrais d'utiliser la commande "shell" et
de pouvoir dans une macro ouvrir ce logiciel pour ouvrir
l'image...

Sinon si vous avez un moyen d'accéder à la base de
registre via Excel , je suis preneur car ensuite je
pourrais me débrouiller :)

Merci de votre aide
Avatar
Gafish
Bonjour,

Sinon tu as aussi la possiblité de faire cela de manière transparente, ca
t'évite des manipulations, regarde ici :
http://www.mvps.org/accessfr/apis/api0018.htm
Ca utilise le paramètrage de ton OS (les options des dossiers dans un
explorateur), si tes jpg sont paramétrés pour s'ouvrir avec Internet
explorer, automatiquement quand tu demande à ouvrir un jpg il ouvrira IE,
sans que tu aies à savoir quel executable est nécessaire.

Arnaud

"Alain CROS" a écrit dans le message news:
e$
Bonjour.

Private Declare Function FindExecutable& _
Lib "Shell32" Alias "FindExecutableA" _
(ByVal lpFile$, ByVal lpDirectory$, ByVal lpResult$)

Sub Demo_FindExecutable()
Dim Ext$, Prog$, Msg$, BlaBla$
BlaBla = "Utilisation de FindExecutable"
Ext = InputBox("Entrer une extension de fichier", BlaBla, "jpg")
If Ext <> "" Then
If TrouveEXE(Ext, Prog) Then
Msg = "Le progamme associé à " & Ext & " est :" & _
vbNewLine & vbNewLine & Prog
Else
Msg = "Aucune association pour " & Ext
End If
Else
Msg = "Opération annulée"
End If
MsgBox Msg, vbInformation, BlaBla
End Sub

Function TrouveEXE&(ByVal Ext$, ByRef Prog$)
Dim LeFile$, nFich%, Exist As Boolean
Const MAX_PATH& = 260&
Prog = Space$(MAX_PATH)
nFich = FreeFile
LeFile = "nFich" & nFich & "." & Ext
Exist = Dir$(LeFile) <> vbNullString
Open LeFile For Output As nFich
Close nFich
If FindExecutable(LeFile, vbNullString, Prog) > 32& Then
Prog = Left$(Prog, InStr(Prog, vbNullChar) - 1&)
TrouveEXE = True
End If
If Not Exist Then Kill LeFile
End Function

Alain CROS

"jules" a écrit dans le message de
news: 0c1d01c5037d$c1c2c690$

Bonjour,

Sous excel, je souhaiterais pouvoir récupérer le chemin et
le nom du .exe qui sert à ouvrir les JPG.
Cela me permettrais d'utiliser la commande "shell" et
de pouvoir dans une macro ouvrir ce logiciel pour ouvrir
l'image...

Sinon si vous avez un moyen d'accéder à la base de
registre via Excel , je suis preneur car ensuite je
pourrais me débrouiller :)

Merci de votre aide




Avatar
jules
merci de votre aide mais Excel se plante à la ligne
If FindExecutable(LeFile, vbNullString, Prog) > 32& Then
il mouline pendant quelques secondes et ensuite "excel va
se fermer etc..."
et je ne comprends pas pour toi...
merci de votre aide...

-----Message d'origine-----
Bonjour.

Private Declare Function FindExecutable& _
Lib "Shell32" Alias "FindExecutableA" _
(ByVal lpFile$, ByVal lpDirectory$, ByVal lpResult$)

Sub Demo_FindExecutable()
Dim Ext$, Prog$, Msg$, BlaBla$
BlaBla = "Utilisation de FindExecutable"
Ext = InputBox("Entrer une extension de fichier",
BlaBla, "jpg")

If Ext <> "" Then
If TrouveEXE(Ext, Prog) Then
Msg = "Le progamme associé à " & Ext & "
est :" & _

vbNewLine & vbNewLine & Prog
Else
Msg = "Aucune association pour " & Ext
End If
Else
Msg = "Opération annulée"
End If
MsgBox Msg, vbInformation, BlaBla
End Sub

Function TrouveEXE&(ByVal Ext$, ByRef Prog$)
Dim LeFile$, nFich%, Exist As Boolean
Const MAX_PATH& = 260&
Prog = Space$(MAX_PATH)
nFich = FreeFile
LeFile = "nFich" & nFich & "." & Ext
Exist = Dir$(LeFile) <> vbNullString
Open LeFile For Output As nFich
Close nFich
If FindExecutable(LeFile, vbNullString, Prog) > 32&
Then

Prog = Left$(Prog, InStr(Prog, vbNullChar) - 1&)
TrouveEXE = True
End If
If Not Exist Then Kill LeFile
End Function

Alain CROS

"jules" a écrit
dans le message de news: 0c1d01c5037d$c1c2c690

$
Bonjour,

Sous excel, je souhaiterais pouvoir récupérer le chemin et
le nom du .exe qui sert à ouvrir les JPG.
Cela me permettrais d'utiliser la commande "shell" et
de pouvoir dans une macro ouvrir ce logiciel pour ouvrir
l'image...

Sinon si vous avez un moyen d'accéder à la base de
registre via Excel , je suis preneur car ensuite je
pourrais me débrouiller :)

Merci de votre aide


.



Avatar
jules
euh et pour intégrer ça à Excel je copie colle dans une
macro ?

-----Message d'origine-----
Bonjour,

Sinon tu as aussi la possiblité de faire cela de manière
transparente, ca

t'évite des manipulations, regarde ici :
http://www.mvps.org/accessfr/apis/api0018.htm
Ca utilise le paramètrage de ton OS (les options des
dossiers dans un

explorateur), si tes jpg sont paramétrés pour s'ouvrir
avec Internet

explorer, automatiquement quand tu demande à ouvrir un
jpg il ouvrira IE,

sans que tu aies à savoir quel executable est nécessaire.

Arnaud

"Alain CROS" a écrit dans le message news:
e$
Bonjour.

Private Declare Function FindExecutable& _
Lib "Shell32" Alias "FindExecutableA" _
(ByVal lpFile$, ByVal lpDirectory$, ByVal lpResult$)

Sub Demo_FindExecutable()
Dim Ext$, Prog$, Msg$, BlaBla$
BlaBla = "Utilisation de FindExecutable"
Ext = InputBox("Entrer une extension de fichier",
BlaBla, "jpg")


If Ext <> "" Then
If TrouveEXE(Ext, Prog) Then
Msg = "Le progamme associé à " & Ext & "
est :" & _


vbNewLine & vbNewLine & Prog
Else
Msg = "Aucune association pour " & Ext
End If
Else
Msg = "Opération annulée"
End If
MsgBox Msg, vbInformation, BlaBla
End Sub

Function TrouveEXE&(ByVal Ext$, ByRef Prog$)
Dim LeFile$, nFich%, Exist As Boolean
Const MAX_PATH& = 260&
Prog = Space$(MAX_PATH)
nFich = FreeFile
LeFile = "nFich" & nFich & "." & Ext
Exist = Dir$(LeFile) <> vbNullString
Open LeFile For Output As nFich
Close nFich
If FindExecutable(LeFile, vbNullString, Prog) > 32&
Then


Prog = Left$(Prog, InStr(Prog, vbNullChar) - 1&)
TrouveEXE = True
End If
If Not Exist Then Kill LeFile
End Function

Alain CROS

"jules" a écrit
dans le message de


news: 0c1d01c5037d$c1c2c690$
Bonjour,

Sous excel, je souhaiterais pouvoir récupérer le chemin
et


le nom du .exe qui sert à ouvrir les JPG.
Cela me permettrais d'utiliser la commande "shell" et
de pouvoir dans une macro ouvrir ce logiciel pour ouvrir
l'image...

Sinon si vous avez un moyen d'accéder à la base de
registre via Excel , je suis preneur car ensuite je
pourrais me débrouiller :)

Merci de votre aide





.




Avatar
jules
ok c'est bon j'ai réussi mais
à la fin :
fHandleFile = lRet & IIf(stRet = "", vbNullString, ", " &
stRet)
End Function

=> sur End Function, Excel me met Erreur d'exécution '438'
A part cela l'image s'ouvre bien...


-----Message d'origine-----
Bonjour,

Sinon tu as aussi la possiblité de faire cela de manière
transparente, ca

t'évite des manipulations, regarde ici :
http://www.mvps.org/accessfr/apis/api0018.htm
Ca utilise le paramètrage de ton OS (les options des
dossiers dans un

explorateur), si tes jpg sont paramétrés pour s'ouvrir
avec Internet

explorer, automatiquement quand tu demande à ouvrir un
jpg il ouvrira IE,

sans que tu aies à savoir quel executable est nécessaire.

Arnaud

"Alain CROS" a écrit dans le message news:
e$
Bonjour.

Private Declare Function FindExecutable& _
Lib "Shell32" Alias "FindExecutableA" _
(ByVal lpFile$, ByVal lpDirectory$, ByVal lpResult$)

Sub Demo_FindExecutable()
Dim Ext$, Prog$, Msg$, BlaBla$
BlaBla = "Utilisation de FindExecutable"
Ext = InputBox("Entrer une extension de fichier",
BlaBla, "jpg")


If Ext <> "" Then
If TrouveEXE(Ext, Prog) Then
Msg = "Le progamme associé à " & Ext & "
est :" & _


vbNewLine & vbNewLine & Prog
Else
Msg = "Aucune association pour " & Ext
End If
Else
Msg = "Opération annulée"
End If
MsgBox Msg, vbInformation, BlaBla
End Sub

Function TrouveEXE&(ByVal Ext$, ByRef Prog$)
Dim LeFile$, nFich%, Exist As Boolean
Const MAX_PATH& = 260&
Prog = Space$(MAX_PATH)
nFich = FreeFile
LeFile = "nFich" & nFich & "." & Ext
Exist = Dir$(LeFile) <> vbNullString
Open LeFile For Output As nFich
Close nFich
If FindExecutable(LeFile, vbNullString, Prog) > 32&
Then


Prog = Left$(Prog, InStr(Prog, vbNullChar) - 1&)
TrouveEXE = True
End If
If Not Exist Then Kill LeFile
End Function

Alain CROS

"jules" a écrit
dans le message de


news: 0c1d01c5037d$c1c2c690$
Bonjour,

Sous excel, je souhaiterais pouvoir récupérer le chemin
et


le nom du .exe qui sert à ouvrir les JPG.
Cela me permettrais d'utiliser la commande "shell" et
de pouvoir dans une macro ouvrir ce logiciel pour ouvrir
l'image...

Sinon si vous avez un moyen d'accéder à la base de
registre via Excel , je suis preneur car ensuite je
pourrais me débrouiller :)

Merci de votre aide





.




Avatar
Modeste
Bonsour®
tout ça dans un module standard
puis lancer exécuter la macro Test
ceci permet d'ouvrir tout document dont l'extension est
connue de windows !!!!

'------------------
Declare Function ShellExecute Lib "shell32.dll"
Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpszOp As String, _
ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal fsShowCmd As Long) _
As Long
'hwnd : Identificateur de fenêtre parent.
'lpszOp : Opération à effectuer open ou print.
'lpszFile : Fichier à ouvrir.
'lpszParams : Paramètres de l'application ----->>>
'>>>lorsque lpszFile spécifie une application exécutable.
'lpszDir : Répertoire par défaut.
'fsShowCmd : Mode d'ouverture de la fenêtre d'application.


'------------------
Const SE_ERR_FNF = 2&
Const SE_ERR_PNF = 3&
Const SE_ERR_ACCESSDENIED = 5&
Const SE_ERR_OOM = 8&
Const SE_ERR_DLLNOTFOUND = 32&
Const SE_ERR_SHARE = 26&
Const SE_ERR_ASSOCINCOMPLETE = 27&
Const SE_ERR_DDETIMEOUT = 28&
Const SE_ERR_DDEFAIL = 29&
Const SE_ERR_DDEBUSY = 30&
Const SE_ERR_NOASSOC = 31&
Const ERROR_BAD_FORMAT = 11&
Const SW_SHOWNORMAL = 1
'---------------------------------------------------
Sub Test
'---indiquer le fichier avec le chemin

'ShellExecute analyse la chaîne lpszFile pour
'déterminer 's'il s'agit d'un fichier ou d'une
'application.
'Dans le cas d'un fichier, l'application est déterminée
' par une recherche dans la base de registre.
'Dans le cas d'une page html,
'la chaîne "http://" permet d'identifier
'le protocole HTTP,
'ce qui provoque la lecture de la clé
' "HKCRhttpshellopen"
'afin d'identifier le browser défini par défaut.

StartDoc "C:mes documentsmonImage.jpg"

End sub
'-----------------la proc -------------------------------
Public Sub StartDoc(ByVal szDoc As String)
Dim lRet As Long, sMessage As String
Dim lErrNum As Long

lRet = ShellExecute(0, "Open", szDoc, "", "C:",
SW_SHOWNORMAL)

If lRet <= 32 Then
lErrNum = 4000 + lRet
Select Case lRet
Case SE_ERR_FNF
Err.Raise lErrNum, "File not found"
Case SE_ERR_PNF
Err.Raise lErrNum, "Path not found"
Case SE_ERR_ACCESSDENIED
Err.Raise lErrNum, "Access denied"
Case SE_ERR_OOM
Err.Raise lErrNum, "Out of memory"
Case SE_ERR_DLLNOTFOUND
Err.Raise lErrNum, "DLL not found"
Case SE_ERR_SHARE
Err.Raise lErrNum, "A sharing violation
occurred"
Case SE_ERR_ASSOCINCOMPLETE
Err.Raise lErrNum, "Incomplete or invalid file
association"
Case SE_ERR_DDETIMEOUT
Err.Raise lErrNum, "DDE Time out"
Case SE_ERR_DDEFAIL
Err.Raise lErrNum, "DDE transaction failed"
Case SE_ERR_DDEBUSY
Err.Raise lErrNum, "DDE busy"
Case SE_ERR_NOASSOC
Err.Raise lErrNum, "No association for file
extension"
Case ERROR_BAD_FORMAT
Err.Raise lErrNum, "Invalid EXE file or error
in EXE image"
Case Else
Err.Raise lErrNum, "Unknown error"
End Select

End If
End Sub


-----Message d'origine-----
Bonjour,

Sous excel, je souhaiterais pouvoir récupérer le chemin
et

le nom du .exe qui sert à ouvrir les JPG.
Cela me permettrais d'utiliser la commande "shell" et
de pouvoir dans une macro ouvrir ce logiciel pour ouvrir
l'image...

Sinon si vous avez un moyen d'accéder à la base de
registre via Excel , je suis preneur car ensuite je
pourrais me débrouiller :)

Merci de votre aide
.