Macro effacement shapes

daniel1949

XLDnaute Occasionnel
Bonjour à tous,
Dans une feuille, en cellule B1 j'enclenche une macro qui m'ouvre un formulaire et suivant les données place une image (picture) en cellule A1. Pour cela, j'ai une banque de trois (3) images nommées Picture 1313, Picture 63 et Picture 4.
Mon problème est d'établir une macro qui efface l'image placée en A1 (Picture 1313 OU Picture 63 OU Picture 4)....et non ET !!!
J'ai beau chercher sur google je ne trouve que des solutions pour effacer une image ou toutes les images. Avez-vous une solution à me proposer ?
Merci
Daniel

PS : ci-joint fichier
 

mromain

XLDnaute Barbatruc
Re : Macro effacement shapes

Bonjour daniel1949,

Voici un exemple :
VB:
Sub test()
Dim laShape As Shape

    For Each laShape In ActiveSheet.Shapes
        If laShape.BottomRightCell.Address = "$A$1" Then laShape.Delete
    Next laShape
End Sub
a+
 
Dernière édition:

daniel1949

XLDnaute Occasionnel
Re : Macro effacement shapes

Merci mromain pour ta réponse rapide. Mais je vais t'ennuyer un peu... J'efface les données ligne par ligne alors comment faire dans le cas d'une cellule placée avant les données (c-à-d : ActiveCell.Offset(0, -1)) ?
a+
 

Pierrot93

XLDnaute Barbatruc
Re : Macro effacement shapes

Bonjour Daniel, Romain

Pas tout compris, peut être nous donné le code concerné....
Merci mromain pour ta réponse rapide. Mais je vais t'ennuyer un peu... J'efface les données ligne par ligne alors comment faire dans le cas d'une cellule placée avant les données (c-à-d : ActiveCell.Offset(0, -1)) ?
a+

bonne soirée
@+
 

daniel1949

XLDnaute Occasionnel
Re : Macro effacement shapes

Bonsoir Pierrot,

Pas tout compris, peut être nous donné le code concerné....@+

En fait j'ai voulu (trop) simplifier ma demande en prenant comme exemple les cellules A1 et B1.
Or dans mon cas, je souhaite supprimer les données LIGNE par LIGNE.
En gros, si en .Offset(0,0) j'ai récupéré les éléments du formulaire et en .Offset(0,-1) j'ai placé une shape... Je souhaite que, par une macro, les données et images soient effacées.
Suis-je clair ?
A plus.... et bon courage
 

daniel1949

XLDnaute Occasionnel
Re : Macro effacement shapes

Bonjour mromain et pierrot93,

Dans une feuille, j'enclenche une macro qui m'ouvre un formulaire et suivant les données place une image (picture) dans la cellule située à gauche . Pour cela, j'ai une banque de trois (3) images nommées Picture 1313, Picture 63 et Picture 4.
J'ai une macro qui m'efface le contenu de la cellule active (ActiveCell.Offset(0,0)) mais mon problème est d'établir une macro qui efface l'image placée dans la cellule située à gauche (ActiveCell.Offset(0,-1)). Cette image peut-être différente comme vous le remarquerez dans la pièce ci-jointe.

J'espère être assez clair.

Merci de vous pencher sur cette demande.

Bonne journée

Daniel
 

mromain

XLDnaute Barbatruc
Re : Macro effacement shapes

Re bonjour,

Voici le code modifié.
En l'occurrence, il supprime la forme située à gauche de la cellule active (ActiveCell) :
VB:
Sub test()
Dim laShape As Shape

    For Each laShape In ActiveSheet.Shapes
        If laShape.BottomRightCell.Address = ActiveCell.Offset(0, -1).Address Then laShape.Delete
    Next laShape
End Sub
a+
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
429

Statistiques des forums

Discussions
312 337
Messages
2 087 392
Membres
103 536
dernier inscrit
komivi