Bonjour,
Je vous explique mon problème. Dans ma feuille excel, j'ai 4 tableaux les uns sous les autres. Une macro va me chercher une image en fonction de la valeur de la cellule adjacente. Jusque là pas de problème. Je souhaiterais prendre l'image et la copier dans une cellule définie. J'ai trouvé ce code qui me va très bien :
Sub CopyImage()
Dim s As Shape
Dim bOK As Boolean
For Each s In Sheets("Feuil4").Shapes
If s.Type = msoPicture Then
bOK = True
Exit For
End If
Next
If bOK Then
s.copy
Sheets("Feuil4").Activate
Range("G3").Select
ActiveSheet.Paste
End If
End Sub
MAIS je souhaiterai que ce code ne s'applique que sur une plage de cellule, j'ai donc modifiée la formule ainsi (voir en gras)
Sub CopyImage()
Dim s As Shape
Dim bOK As Boolean
For Each s In Sheets("Feuil4").Range("d4:d18").Shapes
If s.Type = msoPicture Then
bOK = True
Exit For
End If
Next
If bOK Then
s.copy
Sheets("Feuil4").Activate
Range("G3").Select
ActiveSheet.Paste
End If
End Sub
Mais une fois que j'ai rajouté cet élèment la macro bloque sur la ligne ou j'ai rajouté le range avec l'erreur suivante "erreur d'execution 438". J'en déduis donc que je ne peux pas mettre un "range" à cet endroit. alors comment faire ?
Je vous remercie par avance de votre aide.
Cordialement
Je vous explique mon problème. Dans ma feuille excel, j'ai 4 tableaux les uns sous les autres. Une macro va me chercher une image en fonction de la valeur de la cellule adjacente. Jusque là pas de problème. Je souhaiterais prendre l'image et la copier dans une cellule définie. J'ai trouvé ce code qui me va très bien :
Sub CopyImage()
Dim s As Shape
Dim bOK As Boolean
For Each s In Sheets("Feuil4").Shapes
If s.Type = msoPicture Then
bOK = True
Exit For
End If
Next
If bOK Then
s.copy
Sheets("Feuil4").Activate
Range("G3").Select
ActiveSheet.Paste
End If
End Sub
MAIS je souhaiterai que ce code ne s'applique que sur une plage de cellule, j'ai donc modifiée la formule ainsi (voir en gras)
Sub CopyImage()
Dim s As Shape
Dim bOK As Boolean
For Each s In Sheets("Feuil4").Range("d4:d18").Shapes
If s.Type = msoPicture Then
bOK = True
Exit For
End If
Next
If bOK Then
s.copy
Sheets("Feuil4").Activate
Range("G3").Select
ActiveSheet.Paste
End If
End Sub
Mais une fois que j'ai rajouté cet élèment la macro bloque sur la ligne ou j'ai rajouté le range avec l'erreur suivante "erreur d'execution 438". J'en déduis donc que je ne peux pas mettre un "range" à cet endroit. alors comment faire ?
Je vous remercie par avance de votre aide.
Cordialement