Excel VBA suppression images shapes
mimi
-
belairaway Messages postés 1 Statut Membre -
belairaway Messages postés 1 Statut Membre -
Bonjour tout le monde :0)
Je voudrais supprimer par macro toutes les images importées dans une feuille
pour une image, l'instruction fonctionne
ActiveSheet.Shapes("Picture 37").Select
Selection.Delete
Mais je ne connais pas les noms des shapes (à chaque que j'importe une image, Excel incrémente le no dePicture)
je voudrais un truc du genre mais mon code ne fonctionne pas
For Each Shapes In Sheets
Selection.Delete
Next
Merci d'avance pour vos suggestions :0)
Mimi
Je voudrais supprimer par macro toutes les images importées dans une feuille
pour une image, l'instruction fonctionne
ActiveSheet.Shapes("Picture 37").Select
Selection.Delete
Mais je ne connais pas les noms des shapes (à chaque que j'importe une image, Excel incrémente le no dePicture)
je voudrais un truc du genre mais mon code ne fonctionne pas
For Each Shapes In Sheets
Selection.Delete
Next
Merci d'avance pour vos suggestions :0)
Mimi
9 réponses
-
Salut,
Sub efface() Dim img As Object For Each img In Worksheets(1).Shapes 'ou Worksheets("nom").Shapes img.Delete Next End Sublami20j -
Re,
Utilise plutôt celui làOption Explicit Option Compare Text 'insensible à la casse de caractères Sub efface() Dim img As Shape For Each img In Worksheets("a").Shapes If img.Name Like "PICTURE*" Then img.Delete End If Next End Sublami20j-
-
hello lami20j, tu as l'air plutot fort en vba, voila je me permet de poser une question dans le même topic je cherche moi aussi à extraire les images sauf que cette fois ce n'est pas dans un classeur mais dans un document word, j'ai essayé de faire : for each img in DocWOrd.shapes (docword etant mon doc word ^^), mais cela ne marche pas, y a t-il une solution de possible ?
-
-
-
Pour tester la cellule sous une shape (plus exactement la cellule située sous le coin supérieur gauche), on peut utiliser la propriété TopLeftCell de l'objet shape. À partir de là, savoir si c'est la colonne F est facile.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Dim obj As Shape
For Each obj In ActiveWorkbook.ActiveSheet.Shapes
obj.Delete
Next
Ça devrait faire l'affaire ! -
Merci beaucoup pour la solution : elle fonctionne impécablement
:0)
personnalisé à mon onglet, cela donne :
Dim img As Object
For Each img In Sheets("travail").Shapes
img.Delete
Next
longue vie au forum !!
Mimi -
-
@zorgloub
J'ai bien peur que la notion d'image dans la colonne F n'ai pas lieu d'être. En effet, une image n'est pas installée dans une cellule, elle est collée par dessus la feuille, puis est positionnée (ce qui donne parfois l'illusion qu'elle se trouve dans une colonne.
Je pense que pour supprimer ces dites images, il faudrait que tu joues dans la macro avec leur position (Top, Left...) afin de déterminer les images qui se situent au niveau de la colonne F.
A moins que quelqu'un ai une autre idée...
A bientôt.
MA -
'avec gobjSheetGraphic qui est ta worksheet courante
gobjSheetGraphic.Shapes.SelectAll
'avec gobjExcel qui est l'application en cours excel
gobjExcel.Selection.Delete