Suppression image dans excel

Fermé
sisijp74 Messages postés 37 Date d'inscription dimanche 11 novembre 2007 Statut Membre Dernière intervention 4 octobre 2019 - Modifié le 1 oct. 2019 à 15:29
sisijp74 Messages postés 37 Date d'inscription dimanche 11 novembre 2007 Statut Membre Dernière intervention 4 octobre 2019 - 4 oct. 2019 à 13:07
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
A voir également:

4 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
1 oct. 2019 à 17:18
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
sisijp74 Messages postés 37 Date d'inscription dimanche 11 novembre 2007 Statut Membre Dernière intervention 4 octobre 2019 33
2 oct. 2019 à 11:38
Merci Le Pivert, j'ais essayer. Mais comment fait on pour afficher cette liste ? quelle touche ?
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
2 oct. 2019 à 13:35
Voici un exemple à adapter:

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

@+ Le Pivert
0
sisijp74 Messages postés 37 Date d'inscription dimanche 11 novembre 2007 Statut Membre Dernière intervention 4 octobre 2019 33
3 oct. 2019 à 08:37
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
3 oct. 2019 à 10:58
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
sisijp74 Messages postés 37 Date d'inscription dimanche 11 novembre 2007 Statut Membre Dernière intervention 4 octobre 2019 33
4 oct. 2019 à 13:07
Tout ok merci, bon week end
0