Suppression image dans excel

Messages postés
37
Date d'inscription
dimanche 11 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2019
-
Bonjour tout le monde,
J'ai une feuille excel, texte et photos. Je voudrai supprimer les photos de certaines colonnes genre A to E et J to N. Mais pas une par une, j'en ai plus de 50. J'ai déjà essayer plusieurs formules en creant un module mais ça me selectionne toutes les photos. Je dois faire une mauvaise manip mais laquelle ......
j'ai essayé ça :
Private Sub CommandButton3_Click()
Dim S As Shape

  For Each S In ActiveSheet.Shapes
    If TypeName(S.OLEFormat.Object) = "Picture" Then
      If S.TopLeftCell.Column = ActiveCell.Column Then
        S.Delete
      End If
    End If
  Next S
End Sub


Puis ça :
Sub Test()
    
    Dim xPicRg As Range
    Dim xPic As Shape
    Dim xRg As Range
    
    Application.ScreenUpdating = False
    
    Set xRg = Range("A466:BB500")
    
        For Each xPic In ActiveSheet.Shapes
        
            Set xPicRg = Range(xPic.TopLeftCell.Address & ":" & xPic.BottomRightCell.Address)
            If Not Intersect(xRg, xPicRg) Is Nothing Then xPic.Delete
            
        Next
    
    Application.ScreenUpdating = True

End Sub



Des idées ??
merci
Afficher la suite 

4 réponses

Messages postés
6286
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 octobre 2019
400
0
Merci
Bonjour,

une idée OUI, afficher toutes les images(Shapes) dans une listBox, sélectionner celles que l'on veut supprimer.

Pour faire cela:

Inserer un UserForm, mettre 2 CommandButton et une ListBox avec ce code:

Option Explicit
Private Sub CommandButton1_Click()
Dim s As Shape
For Each s In ActiveSheet.Shapes 'boucle sur les shapes
   ListBox1.AddItem (s.Name)
   Next s
   End Sub
Private Sub CommandButton2_Click()
 Dim i As Byte
 Dim nom As String
     'boucle sur les éléments de la listbox
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
      nom = ListBox1.List(i)
     Worksheets("Feuil1").Shapes(nom).Delete 'adapter nom de la feuille
        End If
    Next i
End Sub
Private Sub UserForm_Initialize()
ListBox1.MultiSelect = fmMultiSelectMulti
CommandButton1.Caption = "Afficher"
CommandButton2.Caption = "Supprimer"
End Sub


Voilà


Commenter la réponse de cs_Le Pivert
Messages postés
37
Date d'inscription
dimanche 11 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2019
33
0
Merci
Merci Le Pivert, j'ais essayer. Mais comment fait on pour afficher cette liste ? quelle touche ?
cs_Le Pivert
Messages postés
6286
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 octobre 2019
400 -
Voici un exemple à adapter:

https://www.cjoint.com/c/IJclIC7V6kQ

@+ Le Pivert
Commenter la réponse de sisijp74
Messages postés
37
Date d'inscription
dimanche 11 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2019
33
0
Merci
Bonjour Pivert,
Je n'y arrive pas. Il y a des choses que je ne comprend pas. Tout d'abord, quand j'ouvre ton fichier, sur userform1 je fais clic droit, code et c'est le meme code que tu as envoyé hier qui s'affiche. Mais j'imagine qu'il y a des choses a rajouter comme nom de la feuille etc....
Le nom de la feuille ok mais les shapes ????? c'est les images ? comment je leur donne un nom ou une position ? Comment definir le raccourcis qui ouvre le userform (ctrl W)?

Merci
cs_Le Pivert
Messages postés
6286
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 octobre 2019
400 -
Voir ceci pour les UserForm:

https://silkyroad.developpez.com/VBA/UserForm/

Comment definir le raccourcis qui ouvre le userform (ctrl W)?

http://www.info-3000.com/vbvba/raccourciclavier.php

mais les shapes ????? c'est les images ? comment je leur donne un nom ou une position

Leur nom est attribué au moment de l'insertion de l'image sur la feuille: Picture 1, Picture 2 etc.

La listBox te permet justement d'afficher ces noms que tu ne connais pas. En sélectionnant le nom dans la listbox, l'image est sélectionnée sur la feuille. Tu peux donc voir si c'est l'image que tu veux supprimer.

Si tu veux déplacer la feuille avec l'UserForm ouvert. Il te faut mettre la propriété de l'UserForm ShowModal à False



voilà, si tu as d'autres question?

@+ Le Pivert
Commenter la réponse de sisijp74
Messages postés
37
Date d'inscription
dimanche 11 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2019
33
0
Merci
Tout ok merci, bon week end
Commenter la réponse de sisijp74