VBA image

Bonjour à tous,

J'ai fait le code suivant pour supprimer des images sur ma feuille :

Sub Donnees()
Dim Wfl As Worksheet
Dim Shp As Shape

Set Wfl = ThisWorkbook.Worksheets("Fiche log")

For Each Shp In Wfl.Shapes
    If Shp.Type <> 8  Then
    Shp.Delete
    End If
Next Shp

Ce code fonctionne très bien, sauf que j'aimerais ajouter au code "de ne pas supprimer l'objet "IMAGE".

J'ai donc fait ce code mais il ne fonctionne pas :

Sub Donnees()
Dim Wfl As Worksheet
Dim Shp As Shape

Set Wfl = ThisWorkbook.Worksheets("Fiche log")

For Each Shp In Wfl.Shapes
    If Shp.Type <> 8 Or Shp.Name <> "IMAGE"   Then
    Shp.Delete
    End If
Next Shp

Où est mon erreur ?

Merci

Clem

Bonjour,

Essaie ainsi :

Public Sub Donnees()
Dim Wfl As Worksheet, Shp As Shape
    Set Wfl = ThisWorkbook.Worksheets("Fiche log")
    For Each Shp In Wfl.Shapes
        Select Case Shp.Type
            Case 8, 13:
            Case Else: Shp.Delete
        End Select
    Next Shp
End Sub

euh non ça ne fonctionne pas, mes images ne se suppriment plus.

J'ai peut-être pas été assez claire.

En fait avec mon code je veux supprimer toutes les images de ma feuille sauf celle de type 8 (liste déroulante)

Et sauf une image qui se trouve en A1 et qui s'appelle "IMAGE"

Merci pour la réponse

Clem

Re,

Consulte ce lien pour les différents types des shapes :

https://docs.microsoft.com/fr-fr/office/vba/api/office.msoshapetype

Sinon essaie ceci :

Public Sub Donnees()
Dim Wfl As Worksheet, Shp As Shape
    Set Wfl = ThisWorkbook.Worksheets("Fiche log")
    For Each Shp In Wfl.Shapes
        Select Case Shp.Type
            Case 8:
            Case 13: If Not Shp.Name = "IMAGE" Then Shp.Delete
            Case Else: Shp.Delete
        End Select
    Next Shp
End Sub

ça marche nickel

Merci

Et merci pour le lien !

Clem

Rechercher des sujets similaires à "vba image"