Bonjour,

je suis pas informaticienne et j ai jamais programmé en VBA excel.
Donc aujourd hui j'ai besoin d ouvrir à chaque fois un fichier different selon la valeur d une cellule.
J ai un peu fouiner sur internet et sur votre forum j'ai trouvé un ptit code qui a bien reussi a ouvrir un fichier mais uniquement un fichier TXT. Or, dans mon cas j veux ouvrire des fichiers gif.
Le test est concluant quand je mets dans les parametres de la fonction le chemin d'un fichier texts. mais ça foire quand il s'agit d un autre type de fichier
Voila le code

Dans le module j ai mis

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Option Explicit
 
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
        ByVal hwnd As Long, _
        ByVal lpOperation As String, _
        ByVal lpFile As String, _
        ByVal lpParameters As String, _
        ByVal lpDirectory As String, _
        ByVal nShowCmd As Long) As Long
 
Function OuvrirDocument(strChemin As String)
 
    'Déclaration des variables
    Dim strErreur As String
 
    Select Case ShellExecute(0, "open", strChemin, vbNullString, vbNullString, 1)
 
        Case 0: strErreur = "Le système manque de mémoire ou de ressources, l'exécutable est corrompu ou réallocations non valides."
        Case 2: strErreur = "Fichier non trouvé."
        Case 3: strErreur = "Chemin non trouvé."
        Case 5: strErreur = "Une tentative a été faite pour se lier dynamiquement à une tache, ou il y a eu une erreur de partage ou de protection réseau."
        Case 6: strErreur = "La librairie requiert des segments de données séparés pour chaque tâche."
        Case 8: strErreur = "Il n 'y a pas assez de mémoire disponible pour lancer l'application."
        Case 10: strErreur = "Version de Windows incorrecte."
        Case 11: strErreur = "Le fichier exécutable n'est pas correct, il se peut que ce ne soit pas une application Windows, ou qu'il y ait une erreur dans le fichier .EXE;"
        Case 12: strErreur = "L'application a été conçue pour un autre système d'exploitation."
        Case 13: strErreur = "L'application a été conçue pour MS-DOS 4.0."
        Case 14: strErreur = "Le type de fichier exécutable est inconnu."
        Case 15: strErreur = "Tentative de chargement d'une application en mode réel."
        Case 16: strErreur = "Tentative de charger une seconde instance d'un fichier exécutable contenant plusieurs segments de données qui ne sont pas marqués en lecture seule."
        Case 19: strErreur = "Tentative de charger un fichier exécutable compressé. Le fichier doit être décompressé avant d'être chargé."
        Case 20: strErreur = "Fichier de librairie liée dynamiquement (DLL) incorrect, une des DLLs requise pour exécuter cette application est corrompue."
        Case 21: strErreur = "L 'application requiert les extensions Microsoft Windows 32-bit."
        Case 31: strErreur = "Il n 'y a pas d'association pour le type de fichier spécifié, ou il n'y a pas d'association pour l'action choisie pour le type de fichier choisi."
 
    End Select
 
    If strErreur <> "" Then
 
        MsgBox strErreur, vbCritical, "Erreur"
 
    End If
 
End Function
Pour appeler la fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Option Explicit
 
 Sub OpenFile()
 
Dim strFileName As String
Dim X
If Cells(1, 1) = "F" Then
strFileName = " C:\Users\Yosser\Desktop\ENA.jpg"
X = OuvrirDocument(strFileName)
End If
End Sub
Merci de m'aider, je suis vraiment bloquée et j ai besoin d'avancer

Thank you