XL 2013 Message erreur en ouverture d'image

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
 

Lone-wolf

XLDnaute Barbatruc
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:

Lone-wolf

XLDnaute Barbatruc
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??? :confused: . Et pour ma part je mettrai

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

Next c
End With
 
Dernière édition:

Fred59240

XLDnaute Nouveau
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
 

Lone-wolf

XLDnaute Barbatruc
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: 51
Dernière édition:

Fred59240

XLDnaute Nouveau
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:

Fred59240

XLDnaute Nouveau
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
 

Lone-wolf

XLDnaute Barbatruc
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. :mad:
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino