XL 2013 Message erreur en ouverture d'image

  • Initiateur de la discussion Initiateur de la discussion Fred59240
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Fred59240

XLDnaute Nouveau
Bonjour,

J'obtiens un message d'erreur ( ci-dessous ) :

"Erreur d'éxécution 1004
Impossible de lire la propriété Insert de la classe pictures"

Ceci suite à ma macro :

Dim r As Long
Dim c As Range
r = 1
For Each c In Selection
img = c.Value
If img <> "" Then
c.RowHeight = 100 'fixer la hauteur de ligne
ActiveSheet.Pictures.Insert(img).Select 'ouverture image
With Selection.ShapeRange
.LockAspectRatio = msoTrue 'conserver les proportion
.IncrementTop (ActiveCell.Height - Selection.ShapeRange.Height) / 2
.Height = 84
If Height > 84 Then .Height = 60
If .Width > 210 Then .Width = 200
.Left = c.Offset(0, r).Left + 1 'déplacement d'autant de colonne que r =
.IncrementLeft (ActiveCell.Width - Selection.ShapeRange.Width) / 2
.Top = c.Top + 1 ' descente de l'image de 1 du haut de la cellule
End With
End If
Next c

Quelqu'un sait-il me dire pourquoi ?
Je vais chercher mes images dans la bibliothèque de mon PC.

Merci à vous

Fred
 
Re : Message erreur en ouverture d'image

Bonjour Fred 🙂

Tu as oublié d'y inclure le chemin.

EDIT: Bonjour M12 🙂


EDIT 2: un exemple d'insertion d'image dans chaque feuille. Ici les noms des images correspondent aux noms des feuilles.

Code:
Sub InsertImage()
Dim i, x As Integer, nom As String, ws As Worksheet, cel As Range, rep, img
 ActiveSheet.DrawingObjects.Delete
For i = 0 To 29
x = i + 1
nom = "Feuil" & x
   For Each ws In Worksheets
If nom <> "" And ws.Name = nom Then
ws.Activate
  rep = ThisWorkbook.Path & "\" & nom & ".gif"
  Set img = ActiveSheet.Pictures.Insert(rep)
  Set cel = ws.Range("f2")
  img.Top = cel.Top
  img.Name = nom
  End If
Next ws
  Next i
End Sub
 
Dernière édition:
Re : Message erreur en ouverture d'image

Re,

Moi je ne le vois pas dans la macro, et ça ne sert à rien de créer un lien hypertexte, regarde l'exemple que j'ai mis. À moins que tu clique sur le lien pour charger l'image, mais il faut quand même l'inclure dans la macro.

For Each c In Selection qu'elle selection??? 😕 . Et pour ma part je mettrai

With Feuil1
For Each c In .Range("c2:c100")

Next c
End With
 
Dernière édition:
Re : Message erreur en ouverture d'image

Re Lone,

Voici ma formule de ma cellule C3: =SI($A3="";"";LIEN_HYPERTEXTE(Import!J2))
Il me renvoit le chemin : C:\Users\poste\Pictures\DIQ02.jpg dans la même cellule.
Et normalement il me mettait ma photo en cellule D3.

Ma macro fonctionnait mais je ne sais pas pourquoi maintenant ça coince !!!

Merci
 
Re : Message erreur en ouverture d'image

Re,

Seigneur prier.gif

Le lien que tu as mis, tu ne peux pas l'inclure dans la macro??? Et encore une fois For Each c In Selection qu'elle selection??? En l'écrivant comme tu la fais c'est n'importe quelle colonne que tu sélectionne. Lit comme il faut mes précédents messages.
 

Pièces jointes

  • prier.gif
    prier.gif
    10.6 KB · Affichages: 52
Dernière édition:
Re : Message erreur en ouverture d'image

J'ai oublié de te préciser effectivement le début de ma macro :

Sheets("CAT").Select
Columns("C:C").Select
Const hDefaut = 100

J'espère que cela va t'aider un peu mieux...???

Sinon comment l'intégrer dans ma macro ?

Je vais me restaurer. Je reviens vers 14h00. Merci et bon appétit.
 
Dernière modification par un modérateur:
Re : Message erreur en ouverture d'image

Re Lone,

Voici ma macro initiale avec pour chaque c sélectionné, la colonne C.
J'ai beau lire et relire tes messages précédents, je n'arrive pas à copier via le lien hypertexte, mes images en colonne D.
Le lien hypertexte étant en colonne C.

j'ai récupéré des bouts de macro sur le forum pour faire cette macro, mais je n'y connais pas grand chose en VBA.

En fait, je coule complétement.

Merci pour ton aide.

Fred

Sheets("CAT").Select
Columns("C:C").Select
Const hDefaut = 100Dim r As Long
Dim c As Range
r = 1
For Each c In Selection
img = c.Value
If img <> "" Then
c.RowHeight = 100 'fixer la hauteur de ligne
ActiveSheet.Pictures.Insert(img).Select 'ouverture image
With Selection.ShapeRange
.LockAspectRatio = msoTrue 'conserver les proportion
.IncrementTop (ActiveCell.Height - Selection.ShapeRange.Height) / 2
.Height = 84
If Height > 84 Then .Height = 60
If .Width > 210 Then .Width = 200
.Left = c.Offset(0, r).Left + 1 'déplacement d'autant de colonne que r =
.IncrementLeft (ActiveCell.Width - Selection.ShapeRange.Width) / 2
.Top = c.Top + 1 ' descente de l'image de 1 du haut de la cellule
End With
End If
Next c
 
Re : Message erreur en ouverture d'image

Re

Code:
Sub InsertImage()
Dim i  As Long, nom As String, cel As Range, rep, img
 ActiveSheet.DrawingObjects.Delete
 With Sheets("CAT")
.Activate
For i = 2 To 23
.Cells(i, 4).RowHeight = 92.25
Next i
Columns("D:D").ColumnWidth = 14
For Each cel In .Range("c3:c20")
nom = cel.Offset(0, 0).Value
If nom <> "" Then
 cel.Offset(0, 1).Select
  rep = " C:\Users\poste\Pictures\" & nom & ".jpg"
  Set img = ActiveSheet.Pictures.Insert(rep)
 img.Select
With Selection.ShapeRange
.LockAspectRatio = msoTrue 
.Top = cel.Offset(0, 1).Top
.Height = cel.Offset(0, 1).Height
.Width = cel.Offset(0, 1).Width
End With
  End If
Next cel
End With
End Sub

ET M.... POUR LE FICHIER. 😡
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
994
  • Question Question
Microsoft 365 choisir une page
Réponses
6
Affichages
781
Réponses
0
Affichages
2 K
Réponses
2
Affichages
723
Retour