Bonjour à tous,
J'ai trouvé un code permettant de choisir une image en fonction d'une liste déroulante et j'en suis pleinement satisfait.
Maintenant il faut que je l'explique dans mon rapport et j'ai eu un peu de mal... Voici le code :
Private Sub Worksheet_Change(ByVal Target As Range)
Set images = Sheets("images")
If Target.Count = 1 Then
' supression
For Each s In ActiveSheet.Shapes
If s.Type = 13 Then
If s.TopLeftCell.Address = Target.Offset(0, 1).Address Then
s.Delete
End If
End If
Next s
If Target <> "" Then
On Error Resume Next
images.Shapes(Target).Copy
If Err = 0 Then
Target.Offset(0, 1).Select
ActiveSheet.Paste
Selection.ShapeRange.Left = ActiveCell.Left + 20
Selection.ShapeRange.Top = ActiveCell.Top
Target.Select
End If
End If
End If
J'aimerais comprendre certaines lignes :
- la première avec la procédure privée, je ne comprend pas ce qui est entre parenthèse
- If Target.Count = 1 à quoi cela sert il ?
- dans la boucle For : If s.Type = 13 pourquoi s.type = 13 ?
- If Target <> "" à quoi cela sert il ?
- On Error Resume Next à quoi cela sert il ?
- ActiveSheet.Paste
voila le reste j'arrive à le comprendre mais ces quelques lignes me posent des soucis !
merci
balzou
J'ai trouvé un code permettant de choisir une image en fonction d'une liste déroulante et j'en suis pleinement satisfait.
Maintenant il faut que je l'explique dans mon rapport et j'ai eu un peu de mal... Voici le code :
Private Sub Worksheet_Change(ByVal Target As Range)
Set images = Sheets("images")
If Target.Count = 1 Then
' supression
For Each s In ActiveSheet.Shapes
If s.Type = 13 Then
If s.TopLeftCell.Address = Target.Offset(0, 1).Address Then
s.Delete
End If
End If
Next s
If Target <> "" Then
On Error Resume Next
images.Shapes(Target).Copy
If Err = 0 Then
Target.Offset(0, 1).Select
ActiveSheet.Paste
Selection.ShapeRange.Left = ActiveCell.Left + 20
Selection.ShapeRange.Top = ActiveCell.Top
Target.Select
End If
End If
End If
J'aimerais comprendre certaines lignes :
- la première avec la procédure privée, je ne comprend pas ce qui est entre parenthèse
- If Target.Count = 1 à quoi cela sert il ?
- dans la boucle For : If s.Type = 13 pourquoi s.type = 13 ?
- If Target <> "" à quoi cela sert il ?
- On Error Resume Next à quoi cela sert il ?
- ActiveSheet.Paste
voila le reste j'arrive à le comprendre mais ces quelques lignes me posent des soucis !
merci
balzou