Seulement l'ancienne photo ne se supprime pas avant l'insertion de la nouvelle.
la macro de suppression enlève toutes les images y compris le logo.
Si tu lance "Sub SuppImage()", oui toutes les photos se supprime
Mais si tu selectionne la cellule D9, il y a seulement l'image nommé avec le nom inscrit dans la cellule D9 (donc l'image en N9) sera supprimé grace a "Private Sub Worksheet_SelectionChange(ByVal Target As Range)".
si je veux mettre le chemin d'accès à L9 par exemple que faut-il écrire dans le code ?
Il faut modifier le CheminPhoto dans la macro
CheminPhoto = Cells(Target.Row + 2, 4).Value
'Correspond a le ligne "Nom" +2 et colonne 4 donc D11
CheminPhoto = Cells(Target.Row, 12).Value
'Correspond a le ligne "Nom" et colonne 12 donc L9
Est-ce qu'on peut générer les photos grâce à un bouton
Oui tu ajoute cette procedure : (Le CheminPhoto sera en D11)
Sub PhotoParFeuille()
Dim NomPhoto, CheminPhoto, AdresseImage As String
Dim EmplacementPhoto As Range
Dim Ligne, DerLigne As Integer
'Pour les lignes de 9 a la derniere ligne de la colonne D (toutes les 60 lignes)
DerLigne = Cells(Rows.Count, 4).End(xlUp).Row
For Ligne = 9 To DerLigne Step 60
If Ligne Mod 60 = 9 Then
'Nom, chemin photo et emplacement de l'image
NomPhoto = Cells(Ligne, 4).Value
CheminPhoto = Cells(Ligne + 2, 4).Value
Set EmplacementPhoto = Range(Cells(Ligne, 14), Cells(Ligne + 4, 15))
'AdresseImage
If Right(CheminPhoto, 1) <> "\" Then CheminPhoto = CheminPhoto & "\"
AdresseImage = CheminPhoto & NomPhoto & ".jpg"
'Si l'image existe
If Dir(AdresseImage) <> "" Then
ActiveSheet.Shapes.AddPicture(AdresseImage, False, True, EmplacementPhoto.Left, EmplacementPhoto.Top, -1, -1).Name = NomPhoto
'Ajuster l'image et la centrer
With ActiveSheet.Shapes.Range(Array(NomPhoto))
.LockAspectRatio = msoTrue
.Width = EmplacementPhoto.Width - 1
.Height = EmplacementPhoto.Height - 1
.Left = EmplacementPhoto.Left + (EmplacementPhoto.Width / 2) - .Width / 2
.Top = EmplacementPhoto.Top + (EmplacementPhoto.Height / 2) - .Height / 2
End With
End If
End If
Next
End Sub
Et pour un chemin en L9:
CheminPhoto = Cells(Ligne, 12).Value
A+