Bonjour à tous,

après avoir épluché une bonne partie des sujets relatifs à mon problème, je voudrais up celui-ci pour vous faire part d'un problème qui me paraît assez bizarre.
Je suis un peu coincé donc, voici les détails :

J'ai monté un VBA sous Excel permettant, en cliquant sur un bouton, de lancer un exécutable qui prend une photo à partir d'une webcam et en fait un BMP.

Suite à cette génération de fichier, j'appelle un autre exécutable qui convertit le BMP en JPG.

Pour finir, je charge l'image dans l'Excel et la positionne dans le document.

Oui mais voila, après mes nombreux tests, autant l'image en BMP s'affiche Nickel, autant celle convertie en JPG ne veut pas s'afficher, rien à faire !

J'ai essayé avec différents convertisseurs en ligne de commande, dont imagemagick, j'obtiens toujours la même chose, pas de message d'erreur, mais un beau carré vide avec la mention "Impossible d'afficher l'image".
Bien que la solution BMP fonctionne, elle n'est pas viable car le document fait déjà 2 Mo après avoir indséré 2 images. J'en ai une trentaine à insérer comme ça.

Y a t'il un problème avec l'insertion d'image en JPG ?? Merci d'avance.

Voici le code :

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
Public Function PrendrePhoto(posLeft As Integer, posTop As Integer, width As Integer, height As Integer, nomFic As String)
Dim RetVal
 
    ' Make sure the current directory is set to the one
    ' where the Excel file is saved
    ChDir (ActiveWorkbook.Path)
 
    If Dir(nomFic + ".bmp") > "" Then
       ' Suppression de la dernière image
        Kill (nomFic + ".bmp")
    End If
 
    If Dir(nomFic + ".jpg") > "" Then
        Kill (nomFic + ".jpg")
    End If
 
    ' Capture new image
    RetVal = Shell("CommandCam.exe /preview /delay 2000 /filename " + nomFic + ".bmp", vbHide)
 
    ' Wait until image file is definitely there
    While Dir(nomFic + ".bmp") = ""
    Wend
 
    ' Short delay to let new file finish saving
    Application.Wait (Now + TimeValue("00:00:01"))
 
    ' Conversion de l'image en JPG
    ' RetVal = Shell("imagemagick/convert.exe " + nomFic + ".bmp " + nomFic + ".jpg", vbHide)
    RetVal = Shell("BMP2JPG.exe " + nomFic + ".bmp " + nomFic + ".jpg", vbHide)
 
    While Dir(nomFic + ".jpg") = ""
    Wend
 
    ' Load new image into image object on spreadsheet
    ' Image1.Picture = LoadPicture("image.bmp")
 
    ' Insertion de l'image avec un lien externe
    ' ActiveSheet.Pictures.Insert(nomFic + ".bmp").Select
 
    ' Insertion de l'image embarquée dans le document
    ActiveSheet.Shapes.AddPicture Filename:=nomFic + ".jpg", linktofile:=msoFalse, savewithdocument:=msoCTrue, Left:=posLeft, Top:=posTop, width:=width, height:=height
 
 
End Function