Bonjour à tous
Je cherche comment supprimer une photo dans un cellule
j'ai deja quelque chose mais ça ne marche pas
si quelqu'un peux m'aider je suis preneur
merci d'avance
Bonjour à tous
Je cherche comment supprimer une photo dans un cellule
j'ai deja quelque chose mais ça ne marche pas
si quelqu'un peux m'aider je suis preneur
merci d'avance
Bonjour,
Efface les images du champ A120
Boisgontier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub EffaceMentShapeChamp() For Each s In ActiveSheet.Shapes If Not Intersect(s.TopLeftCell, Range("$A$1:$D$20")) Is Nothing Then s.Delete Next s End Sub
http://boisgontierjacques.free.fr
Bonjour BoigontierJacques
Merci pour ton aide ça marche
seulement ça efface tout le champ meme les boutons
je vais mettre les bouton hors du champ
moi j'avais ceci
ça ne marche pas pourquoi?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sheets(Feuil1).Select For Each Sh In WorkSheets(Feuil1).Shapes If Sh TopLeftCell.Address=Range("C2").Address Then Sh Delete End If Next
Bonne journée et encore merci
Bonjour,
En reprenant la solution de Jacques, si le nom de vos images commencent par une chaîne générique comme "Image YYYYY", il suffirait de tester les premiers caractères du nom pour les différencier des autres formes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 If Mid(S.Name, 1, 5) = "Image" Then S.Delete
Bonjour Eric Kergresse
les nom de mes photos sont les noms et prenoms des gens
mais ce que m'a communiqué Boigontier jacques c'est bon ça marche
merci à vous deux
si quelqu'un pouvait m'expliquer pourquoi ma macro ne marchait pas
j'aurai appris quelque chose
Bonjour,
Boisgontier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub EffaceMentShapeChampSaufBoutons() For Each s In ActiveSheet.Shapes If Not Intersect(s.TopLeftCell, Range("$A$1:$D$20")) Is Nothing Then If s.Type <> 8 And s.Type <> 12 Then s.Delete End If Next s End Sub
http://boisgontierjacques.free.fr
Ce que vous avez mis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sheets(Feuil1).Select For Each Sh In WorkSheets(Feuil1).Shapes If Sh TopLeftCell.Address=Range("C2").Address Then Sh Delete End If Next
Ce que vous auriez dû mettre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub Essai() Dim Sh As Shape For Each Sh In Sheets("Feuil1").Shapes ' For Each Sh In Feuil1.Shapes ' Alternative If Sh.TopLeftCell.Address = Range("C2").Address Then Sh.Delete Next End Sub
Bonjour à Jacques et à Eric
Merci beaucoup Vous m'avez bien aidé
Je ne sais pas comment mettre Resolu
Bonjour,
MERCI !!! c'est aussi ce que je cherchais depuis longtemps ! !
Pour optimiser la durée d'exécution rajouter "Exit for" dans la boucle afin de sortir plus rapidement.
Sub Essai()
Dim Sh As Shape
For Each Sh In Sheets("Feuil1").Shapes
' For Each Sh In Feuil1.Shapes ' Alternative
If Sh.TopLeftCell.Address = Range("C2").Address Then
Sh.Delete
Exit For
End if
Next
End Sub
Autre question :
Pourquoi est-il nécessaire de "scanner" l'ensemble de la feuille si on connait déjà l'emplacement de l'image dans cellule (mais pas son nom) ???
![]()
Bonjour,
il n'y a pas d'obligation mais lorsque le nom n'est pas connu cette méthode est bien plus simple …
___________________________________________________________________________________________________________Je suis Paris, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
Partager