Comment effacer des formes ("shapes") dans une plage de données

  • Initiateur de la discussion Initiateur de la discussion Thekak
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Thekak

XLDnaute Nouveau
Bonjour,

Je fais actuellement une macro qui colle ddifférentes formes ("shapes") dans les cases d'un tableau.
Je le place lignes par ligne à l'aide de boutons déclenchant les macros (1 bouton par ligne).
Lorsque je clique sur le bouton déclenchant ma macro pour la ligne 1, je souhaiterai que celui-ci supprime toutes les formes de la ligne (dans le range B8:AM8), sans supprimer celles des autres lignes.
Mon problème est que je n'arrive pas à sélectionner seulement les formes. J'arrive bien à sélectionner les cases Excel de B8:AM8, mais pas les formes qui sont dans ce range.
Pouvez-vous m'aider SVP.
Merci,
 
Re : Comment effacer des formes ("shapes") dans une plage de données

Bonjour,

essaye peut être ceci :
Code:
Option Explicit
Sub test()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
    If Not Intersect(sh.TopLeftCell, Range("B8:AM8")) Is Nothing Then sh.Delete
Next sh
End Sub

bonne journée
@+
 
Re : Comment effacer des formes ("shapes") dans une plage de données

Bonjour
SLt Pierrot
J'ajouterai de compter les formes :
Nb_sh = ActiveSheet.Shapes.Count , voire connaitre leur nom : .Name
Cela peut utile par la suite ...... (expérience)

Bonne journée
 
Re : Comment effacer des formes ("shapes") dans une plage de données

Super, ça marche, merci !

Juste une petite question en complément.
Dans ma macro, à l'issue de la suppression (le code que tu m'a passé), je lance une seconde macro pour à nouveau coller des nouvelles formes en remplacement de celles supprimées. Cette seconde macro affiche des boites de dialogues pour la saisie des paramètres des formes à choisir.
Ce qui est étonnant c'est que les boites de dialogues apparaissent avant que la suppression des formes soit effective.
Est-il possible que visuellement que les formes soient supprimées avant que la seconde macro ne soit lancée ?

Pour info ma macro est la suivante :

Option Explicit
Private Sub Saisie_A_L1()

Dim sh As Shape
For Each sh In ActiveSheet.Shapes
If Not Intersect(sh.TopLeftCell, Range("B8:AM8")) Is Nothing Then sh.Delete
Next sh
Worksheets("BdD").Range("A1").Value = 1
Application.Run "Module16.Masque"
End Sub
 
Re : Comment effacer des formes ("shapes") dans une plage de données

C'était bien ça le problème.
j'ai mis le screenupdate à True juste après le code de suppression des formes et ça marche impeccable.
Merci beaucoup de ton aide Pierrot
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour