Bonjour,

Je suis amenée à inserer 2 images (dont le chemin est enregistré dans la bdd) à deux endroits bien défini d'une feuille de calcul.

En cherchant sur le forum, j'ai trouvé un moyen d'afficher les deux images dans la feuille. Voici le code que j'ai réussi a écrire :


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
 
    Const PathI = "Chemin du dossier où sont stockées les images"
 
    Dim Valeur As String
    Dim oApp As Object
    Dim wb As Excel.Workbook
    Dim ws As Excel.Worksheet
 
    Dim Img1, Img2 As Object
 
    'Ouverture de l'application
    Set oApp = CreateObject("Excel.Application")
    oApp.Visible = True
    On Error Resume Next
    oApp.UserControl = True
 
    'Ouverture du fichier de référence
    Set wb = oApp.Workbooks.Open(pathFR)
    Set ws = wb.Worksheets("Rapport")
 
    'Première photo
    Valeur = pathI & picC.Value
 
    Set Img1 = ws.Pictures.Insert(Valeur)
    Img1.Left = ws.Range("PicCo").MergeArea.Left
    Img1.Top = ws.Range("PicCo").MergeArea.Top
    Img1.Width = ws.Range("PicCo").MergeArea.Width
    Img1.Height = ws.Range("PicCo").MergeArea.Height
    Set Img1 = Nothing
 
    'Seconde Photo
    Valeur = pathI & PicNC.Value
 
    Set Img2 = ws.Pictures.Insert(Valeur)
    Img2.Left = ws.Range("ImNC").MergeArea.Left
    Img2.Right = ws.Range("ImNC").MergeArea.Right
    Img2.Top = ws.Range("ImNC").MergeArea.Top
    Img2.Width = ws.Range("ImNC").MergeArea.Width
    Img2.Height = ws.Range("ImNC").MergeArea.Height
    Set Img2 = Nothing
ImNC et PicCo sont les noms des deux plages de cellules qui doivent recevoir les photos.
PicC est la zone de texte d'un formulaire qui indique le nom et l'extension de la photo.

Mon souci c'est qu'elles se placent par défaut sur la dernière case selectionnée dans la feuille de calcule lorsque celle ci a été enregistré.