Image insérée en décalée - AddPicture - VBA

Bonjour à tous,

Je travaille sur l'insertion d'image dans des cellules connaissant leur adresse sur mon disque.

J'arrive à le faire, J'ai presque 300 lignes. Dans les premières lignes, les images s'insèrent correctement en fonction des coordonnées de la cellules, cependant plus j'avance dans mes lignes plus les images s'insèrent en décalée par rapport aux cellulex. A noter que toutes les cellules ont la même taille !

Je ne peux pas partager le fichier, ce sont des données personnelles. Cependant je vous mets en image le problème que je rencontre

(Image des premières lignes et des dernières lignes), ainsi que la fonction reprise et modifiée pour l'insertion des images.

Merci d'avance à tous ceux qui pourront m'aider !

(PS : Je passe beaucoup de temps sur ce forum/site, une merveille quand on travaille sur Excel !)

code VBA :

Function AfficheImage(NomImage, Optional rep As String)
  NomImage = Right(NomImage, Len(NomImage) - 1)
  If IsMissing(rep) Then rep = ThisWorkbook.Path & "\"
  Set F = Sheets(Application.Caller.Parent.Name)
  Set adr = Application.Caller
  Set adr2 = Range(adr.Address).MergeArea
  temp = NomImage & "_" & adr.Address
  Existe = False
  For Each s In adr.Worksheet.Shapes
     If s.Name = temp Then Existe = True
  Next s
  If Not Existe Then
    For Each k In adr.Worksheet.Shapes
       If Mid(k.Name, InStr(k.Name, "_") + 1) = adr.Address Then k.Delete
    Next k

    F.Shapes.AddPicture(rep & NomImage, False, True, adr2.Left, adr2.Top, adr2.Width - 10, adr2.Height - 10).Name = NomImage & "_" & adr.Address

End If
   AfficheImage = ""
End Function
derniere ligne premiere ligne

Bonjour j'ai le même soucis toujours pas de solution au problème ?

up

Bonjour,

Je rencontre un problème similaire :

Ce morceau de code réalise l'affichage d'un curseur (shape) au dessus du numéro de semaine d'un planning

 'Affichage barre de planning sur semaine en cours
    Set cel = ShETC.[rPlanningTitle].Offset(-1, CInt(NumSem) - 1)
    Set curseur = ActiveSheet.Shapes.AddShape(msoShapeFlowchartMerge, 10, 10, 10, 10)
    With curseur
        .Left = cel.Left
        .Height = cel.Height
        .Width = cel.Width
    End With

Je me suis aperçu que l'affichage de la position de l'objet Shape dépend de ma configuration matérielle !!

Lorsque ma macro tourne sur l'écran de PC portable seul, le positionnement est correct quelle que soit la colonne.

Lorsque je branche un écran en bureau étendu, le positionnement est décalé lors de l'opération

.Left = c.Left

Je n'ai pas trouvé de solution pour l'instant, mais si quelqu'un a des pistes, je suis preneur

Rechercher des sujets similaires à "image inseree decalee addpicture vba"