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
Bonjour j'ai le même soucis toujours pas de solution au problème ?
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