Suppression image dans excel
sisijp74
Messages postés
39
Statut
Membre
-
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 :
Puis ça :
Des idées ??
merci
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
-
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à
-
Merci Le Pivert, j'ais essayer. Mais comment fait on pour afficher cette liste ? quelle touche ?
-
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-
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
-
-