Excel VBA suppression images shapes

Fermé
mimi - 3 sept. 2006 à 11:43
belairaway Messages postés 1 Date d'inscription dimanche 4 août 2013 Statut Membre Dernière intervention 4 août 2013 - 4 août 2013 à 19:02
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
A voir également:

9 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
3 sept. 2006 à 12:05
Salut,
Sub efface()
    Dim img As Object
        
    For Each img In Worksheets(1).Shapes 'ou Worksheets("nom").Shapes
     img.Delete
    Next
    
End Sub
lami20j
17
Bonjour à tous.
Un peu tard mais ca fait toujours du bien de trouver ce genre de solution.

Ce code effeca parfaitement bien toutes les images de la feuille mais quel serait le code pour n'effacer que toutes les images se trouvant dans la colonne F, par exemple ?
merci
0
ratikuss Messages postés 2004 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 14 décembre 2016 262
31 mars 2011 à 14:22
ça marche mais trop, ça supprime mes boutons aussi =/
0
belairaway Messages postés 1 Date d'inscription dimanche 4 août 2013 Statut Membre Dernière intervention 4 août 2013
Modifié par belairaway le 4/08/2013 à 19:53
Pareil :(

Une idée pour ne pas supprimer les boutons ?

Merci quand même :)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
3 sept. 2006 à 13:08
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 Sub
lami20j
11
AXN Messages postés 133 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 8 mai 2011 13
Modifié par AXN le 16/07/2010 à 15:47
Perso je cherchais à récupérer le nom du dernier graphique créé (il n'y en a qu'un par feuille) pour le manipuler (apparence, données source, etc.)

Avec cette méthode j'y arrive, désormais.

Merci !
0
momouiz Messages postés 30 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 21 octobre 2013 3
16 juil. 2013 à 11:55
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 ?
0
activesheet.Shapes.SelectAll
selection.delete

;)
3
Bonjour,

et si je ne veux effacer que les images ne se trouvant que dans la colonne F, par exemple ?
Quel serait le code ?

Merci
0
Monsieur Dusnob
3 juin 2009 à 15:43
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.
2

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 !
2
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
0
Merci pour la (les solutions) ! c'est exactement ce que je recherchais !
Amicalement !
0
micaub Messages postés 32 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 18 juin 2015
19 mai 2009 à 11:59
@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
0
'avec gobjSheetGraphic qui est ta worksheet courante
gobjSheetGraphic.Shapes.SelectAll
'avec gobjExcel qui est l'application en cours excel
gobjExcel.Selection.Delete
0