MenuS déroulantS pour insérer des images

Bonjour à tous et à toutes,

Voilà plusieurs heures que je me casse la tête (sans résultats) pour insérer dans plusieurs colonnes le même menu déroulant qui permettrai d'afficher des images. Mon soucis c'est que pour l'instant je n'arrive à afficher les images que dans la colonne A grâce à une procédure que j'ai récupéré sur un tutoriel, dans les autres colonnes seul le texte s'affiche...

J'ai inséré ce code dans VBA :

Private Sub Worksheet_Change(ByVal Target As Range)

Set images = Sheets("image1")

If Target.Column = 1 And Target.Count = 1 Then

'-- suppression

For Each s In ActiveSheet.Shapes

If s.Type = 13 Then

If s.TopLeftCell.Address = Target.Address Then s.Delete

End If

Next s

'--

If Target <> "" Then

On Error Resume Next

images.Shapes(Target).Copy

If Err = 0 Then

ActiveSheet.Paste

largeurImage = images.Shapes(Target).Width

HauteurImage = images.Shapes(Target).Height

Selection.ShapeRange.Left = ActiveCell.Left + ActiveCell.Width / 2 - largeurImage / 2

Selection.ShapeRange.Top = ActiveCell.Top + 5

Rows(Target.Row).RowHeight = HauteurImage + 10

Target.Select

End If

End If

End If

End Sub[/code]

Et cette formule :

=DECALER(image1!$A$2;;;NBVAL(image1!$A:$A)-1)

dans le gestionnaire de noms.

Quand les menus déroulants sont dans la première colonne, ils fonctionnent mais pas dans les autres or comme vous pouvez le voir dans le fichier j'aimerai que les mêmes menus puissent être utilisés dans différentes colonnes.

Dois-je modifier le code? Si oui comment car toutes mes tentatives ont été des échecs... Ou alors l'un de vous connaît-il une autre méthode pour que je puisse arriver à mes fins?

Je vous remercie par avance pour le temps que vous consacrerez à ma demande.

30probleme.xlsx (48.52 Ko)

Bonjour,

Cette ligne de code :

If Target.Column = 1 And Target.Count = 1 Then

fait en sorte que seule la colonne est est visée (Target.Column = 1)

Tu peux utiliser une Select Case pour définir les colonnes que tu souhaites avoir comme cible :

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count > 1 Then Exit Sub

    Select Case Target.Column
        Case 1 To 5 '<-- colonnes de A à E
            Set images = Sheets("image1")
            For Each s In ActiveSheet.Shapes
                If s.Type = 13 Then
                    If s.TopLeftCell.Address = Target.Address Then s.Delete
                End If
            Next s
            '--
            If Target <> "" Then
                On Error Resume Next
                images.Shapes(Target).Copy
                If Err = 0 Then
                    ActiveSheet.Paste
                    largeurImage = images.Shapes(Target).Width
                    HauteurImage = images.Shapes(Target).Height
                    Selection.ShapeRange.Left = ActiveCell.Left + ActiveCell.Width / 2 - largeurImage / 2
                    Selection.ShapeRange.Top = ActiveCell.Top + 5
                    Rows(Target.Row).RowHeight = HauteurImage + 10
                    Target.Select
                End If
            End If
    End Select

End Sub

Un immense merci Theze ! ! ! Cela fonctionne parfaitement

Rechercher des sujets similaires à "menus deroulants inserer images"