OVH Cloud OVH Cloud

chemin d'acces d'une PHOTO dans une cellule

2 réponses
Avatar
greg67
Bonjour à vous,
j'ai un petit soucis concernant un fichier excel de que construit!(sniff)
je voudrais simplement que par vba les chemins d'acces de mes images (type :
c:mes doc....) rempli dans la colonne Y (nb de ligne variables),excel m'ouvre
ces photos en colonne Z
merci pour votre aide!!
Greg

2 réponses

Avatar
michdenis
Bonjour Greg67,

Copie ce qui suit dans un module standard
en adaptant le nom de la feuille et de la plage
de cellules le cas échéant.

'-----------------------------
Sub TestMonImage()

Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("Y1:Y" & .Range("Y65536").End(xlUp).Row)
End With

For Each c In Rg
If c <> "" Then
If Dir(c) <> "" Then
InsérerImage "Feuil2", c.Offset(, 1), c.Value
Else
c.Offset(, 1) = "Fichier photo non trouvé."
End If
End If
Next
Set Rg = Nothing
End Sub
'-----------------------------
Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left
.Top = Rg.Top
'Largeur de l'image
Image.Width = Largeur
'Hauteur de l'image
Image.Height = Hauteur
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlFreeFloating 'or xlmove or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'-----------------------------


Salutations!




"greg67" a écrit dans le message de news:
Bonjour à vous,
j'ai un petit soucis concernant un fichier excel de que construit!(sniff)
je voudrais simplement que par vba les chemins d'acces de mes images (type :
c:mes doc....) rempli dans la colonne Y (nb de ligne variables),excel m'ouvre
ces photos en colonne Z
merci pour votre aide!!
Greg
Avatar
JB
Bonjour,

On suppose que les noms des images sont en colonne A à partir de A2.
On veut importer en colonne B.

Range("b2").Select
Do While ActiveCell.Offset(0, -1) <> ""
nf = ActiveCell.Offset(0, -1) ' & ".jpg"
If Dir(nf) <> "" Then
Set monimage = ActiveSheet.Pictures.Insert(nf)
ActiveCell.EntireRow.RowHeight = monimage.Height
End If
ActiveCell.Offset(1, 0).Select
Loop

Cordialement JB