Impossible d'afficher l'image liée, vba

flipflip

XLDnaute Nouveau
Bonjour,
J'ai réalisé une macro qui insert une image dans une cellule par rapport à une autre cellule contenant le nom du fichier. Sous 2007 je n'ai pas de problème mais avec 2010 les images ne s'affichent pas et j'ai à la place "Impossible d'afficher l'image liée...." Les images qui ont été ajouté à la main elles s'affichent correctement.

Dans le doute j'ai enregistré l'action d'ajouter une photo et j'arrive à la même fonction que dans ma macro.

Code:
ActiveSheet.Pictures.Insert("monimage.jpg")

Ci joint le programme, voir module "ImportImages"
 

Pièces jointes

  • OutilsHilaire.zip
    27 KB · Affichages: 128

Aforum

XLDnaute Nouveau
Re : Impossible d'afficher l'image liée, vba

Bonjour

J'ai exactement le même soucis. Les images ne sont visibles que lorsque le fichier excel est ouvert sur le PC sur lequel ont été insérées les images. Dès que je change de PC j'ai une petite croix rouge à la place de l'image avec en texte le lien vers le fichier image.

Si quelqu'un a une solution ça m'interesse.
 

MJ13

XLDnaute Barbatruc
Re : Impossible d'afficher l'image liée, vba

Bonjour flipflip, Aforum

Il me semble qu'on peut lors de l'enregistrement choisr d'enregister ou pas le miniatures (faire F12).

Mais attention à la taille des fichiers avec un grand nombre d'images non compressées.
 

flipflip

XLDnaute Nouveau
Re : Impossible d'afficher l'image liée, vba

J'ai réussi à faire fonctionner le code

Code:
                Range(ColAct & i).Select
                
                ActiveCell.RowHeight = CellHeight + 2
                ActiveCell.ColumnWidth = CollWidht + 2
                                   
                Set Img = ActiveSheet.Shapes.AddPicture(Chemin_img & "\" & Range(ColRech & i).Value & ".jpg", _
                    msoFalse, _
                    msoCTrue, _
                    ActiveCell.Left + 2, _
                    ActiveCell.Top + 2, _
                    ImgWidth, _
                    ImgHeight _
                )
                Img.Placement = xlMoveAndSize
                Img.Title = Range(ColRech & i).Value

C'est peut être pas ce qu'il y a de plus propre mais ça marche pas trop mal comme ça.
 

Lenou0511

XLDnaute Nouveau
Re : Impossible d'afficher l'image liée, vba

Bonjour,
Je viens déterrer ce sujet !
J'ai exactement le même problème mais je ne comprends pas les réponses qui ont été apportées :/

J'ai une macro qui me permets d'insérer des images à partir du serveur de mon entreprise dans un fichier Excel, mais dès que l'on veut ouvrir le fichier d'un poste qui n'a pas accès au dit serveur, voila ce qu'Excel affiche :

Sans titre.png

Voici la macro en question :

Sub AffImage_THSA()
' Sélectionner les cellules contenant un lien vers une image et appeler la macro
' AffImage les affichera sur le lien ou dans la colonne de gauche ou de droite
Const hDefaut = 75 ' hauteur des images
Const imgDefaut = "" ' saisir chemin complet et le nom de l'image par défaut à afficher si erreur
Dim msg As String, r As Long, h As Long, lmax As Long
Dim c As Range, numfich As Integer
Dim fich
msg = "Oui : Afficher les images à gauche des liens sélectionnés" & vbCrLf
msg = msg & "Non : Afficher les images sur les liens sélectionnés" & vbCrLf
msg = msg & "Annuler : Afficher les images à droite des liens sélectionnés"
r = MsgBox(msg, vbYesNoCancel, "Cellules où mettre les images")
If r = vbYes Then
r = -1
ElseIf r = vbNo Then
r = 0
Else
r = 1
End If
h = InputBox("Hauteur des lignes :", "Choix hauteur", hDefaut)
For Each c In Selection
'c.ColumnWidth = 10
fich = c.Value
' test fichier
If fich <> "" Then
If Left(fich, 7) = "http://" Then
' on conserve le lien sur le net
Else
numfich = FreeFile()
On Error GoTo errfich
Open fich For Input As #numfich
Close #numfich
On Error GoTo 0
End If
End If
'
If fich <> "" Then
c.RowHeight = h 'fixer la hauteur de ligne
ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
With Selection.ShapeRange
.LockAspectRatio = msoTrue 'conserver les proportions
.Height = h - 20 'hauteur de l'image = hauteur des lignes - 20
.Left = c.Offset(0, r).Left + 10 'à gauche colonne A (sinon tu calcules avec la largeur de colonne)
.Top = c.Top + 5 'et positionner verticalement
End With
End If
Next c
Exit Sub
errfich:
fich = imgDefaut
Resume Next
End Sub

Please help !!! J'ai beau fouiner sur le net, et je ne trouve pas de solution. En plus de ça, mes connaissances VBA sont très très limitées.

Merci mille fois pour votre aide.

Lenou
 

Pièces jointes

  • Sans titre.png
    Sans titre.png
    1.6 KB · Affichages: 130
  • Sans titre.png
    Sans titre.png
    1.6 KB · Affichages: 127

Discussions similaires

Statistiques des forums

Discussions
312 166
Messages
2 085 886
Membres
103 018
dernier inscrit
mohcen23