Supprimer les images par macro

WITER

XLDnaute Occasionnel
Rebonjour
je recherche (une fois de plus, lolll ) une macro pour supprimer toutes les pictures et AutoShape qui se trouvent dans la zone B4:L30 de ma feuille.


Quelqu'un aurait il un code pour cette macro

merci encore pour votre aide
 

WITER

XLDnaute Occasionnel
Re : Supprimer les images par macro

Donc il n'existe pas de code pour les supprimer tous d'un coup, je doit le faire manuellement ?

Jai ce code par exemple, mais mes pictures non pas toujours le meme numero (Autoshape ***, et Picture ***), donc elle plante quand elle ne les trouvent pas

Sub SUPPRIMEIMAGES()

ActiveSheet.Shapes("AutoShape 474").Select
Selection.Delete
ActiveSheet.Shapes("Picture 473").Select
Selection.Delete
ActiveSheet.Shapes("cible").Select
Selection.Delete
End Sub
 

Cousinhub

XLDnaute Barbatruc
Re : Supprimer les images par macro

Bonjour,

avec ce code, tu supprimes toutes les images qui sont, ou chevauchent, dans la plage B4:L30

si tu ne veux que supprimer celles qui sont entièrement incluses dans la plage, remplace le Or par un And

Code:
Sub suppr()
For Each sh In Me.Shapes
    If Not Intersect(Range(sh.TopLeftCell.Address), Range("B4:L30")) Is Nothing Or _
        Not Intersect(Range(sh.BottomRightCell.Address), Range("B4:L30")) Is Nothing Then
        sh.Delete
    End If
Next sh
End Sub

Edit : j'ai mis Me, car j'ai utilisé ce code dans le code de la feuille, sinon remplace par Sheets("Feuil1")

Edit 2 : Bonsoir, Tatiak :)
 
Dernière édition:

XL_Luc

XLDnaute Occasionnel
Re : Supprimer les images par macro

Bonjour,

avec ce code, tu supprimes toutes les images qui sont, ou chevauchent, dans la plage B4:L30

si tu ne veux que supprimer celles qui sont entièrement incluses dans la plage, remplace le Or par un And

Code:
Sub suppr()
For Each sh In Me.Shapes
    If Not Intersect(Range(sh.TopLeftCell.Address), Range("B4:L30")) Is Nothing Or _
        Not Intersect(Range(sh.BottomRightCell.Address), Range("B4:L30")) Is Nothing Then
        sh.Delete
    End If
Next sh
End Sub

Edit : j'ai mis Me, car j'ai utilisé ce code dans le code de la feuille, sinon remplace par Sheets("Feuil1")

Edit 2 : Bonsoir, Tatiak :)

Bravo, j'avais pas pensé à l'intersect avec topleftcell jolie solution.
 

WITER

XLDnaute Occasionnel
Re : Supprimer les images par macro

merci , XL_Luc

ca marche , mais j'ai du remplacer le

For Each sh In Me.Shapes

par

for each sh in activesheet.shapes

pour que ca fonctionne

merci une fois de plus pour votre aide
 

MJ13

XLDnaute Barbatruc
Re : Supprimer les images par macro

Bonjour à tous

Félicitation à BHBH pour son code très intéressant.
Code:
Sub suppr()
'BHBH
For Each sh In Activesheet.Shapes
    If Not Intersect(Range(sh.TopLeftCell.Address), Range("B4:L30")) Is Nothing Or _
        Not Intersect(Range(sh.BottomRightCell.Address), Range("B4:L30")) Is Nothing Then
        sh.Delete
    End If
Next sh
End Sub
Par contre si j'ai une zone nommée, par exemple zoneTest, Quelle code pour y faire référence?
 

Discussions similaires

Réponses
30
Affichages
1 K

Statistiques des forums

Discussions
312 836
Messages
2 092 655
Membres
105 479
dernier inscrit
chaussadas.renaud