Suppression image dans excel

sisijp74 Messages postés 39 Statut Membre -  
sisijp74 Messages postés 39 Statut Membre -
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

4 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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à

    0
  2. sisijp74 Messages postés 39 Statut Membre 33
     
    Merci Le Pivert, j'ais essayer. Mais comment fait on pour afficher cette liste ? quelle touche ?
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Voici un exemple à adapter:

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

      @+ Le Pivert
      0
  3. sisijp74 Messages postés 39 Statut Membre 33
     
    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
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
      0
  4. sisijp74 Messages postés 39 Statut Membre 33
     
    Tout ok merci, bon week end
    0