Supprimer un objet

  • Initiateur de la discussion Eric D
  • Date de début
E

Eric D

Guest
Bonjour toutes et tous,

J'ai un pt Pb, Je n'arrive pas à effacer les bons Objets. J'ai des Objets créer d'origine sur ma feuille, et j'en ai d'autre qui sont créer après coup par le code suivant:

Set Obj = Sheets(A).OLEObjects.Add(ClassType:='Forms.TextBox.1', _
Link:=False, DisplayAsIcon:=False, Left:=369, Top:=12, Width:=342, Height:=20)

d'autre part j'ai cette ligne de code:
ActiveSheet.OLEObjects.Delete

mais elle me supprime les Objets d'origine, alors que je voudrais supprimer ceux créer après coup par le code et pas les autres.
Merci pour vos réponses.
Eric D
 

MichelXld

XLDnaute Barbatruc
bonsoir Eric

une solution consiste à nommer l'objet

Dim Obj As OLEObject

Set Obj = Sheets('Feuil1').OLEObjects.Add(ClassType:='Forms.TextBox.1', _
Link:=False, DisplayAsIcon:=False, Left:=39, Top:=12, Width:=342, Height:=20)
Obj.Name = 'Cible'


pour le supprimer plus facilement ensuite

Sheets('Feuil1').OLEObjects('Cible').Delete



Si tu crees plusieurs objets dans la feuille , tu peux par exemple les nommer ainsi

Obj.Name = 'Cible' & Sheets('Feuil1').OLEObjects.Count

et ensuite pour les supprimer

Dim Obj As OLEObject
For Each Obj In Sheets('Feuil1').OLEObjects
If Left(Obj.Name, 5) = 'Cible' Then Obj.Delete
Next



bonne soirée
MichelXld
 
E

Eric D

Guest
Bonjour Michel, le forum,

Merci Michel pour cette information enrichissante, mais dans ma 'detresse', je me suis trompé d'objet. C'est celui que je créé par le code suivant:

With mydocument.Shapes.AddShape(msoShapeRectangle,369, 12, 342, 20).Shadow

j'ai essayé de mettredans le 'With'

.name = 'T1'

mais il n'en veux pas ainsi que

Obj.name = 'T1'

Pourrais je avoir un complement d'information pour ce type d'objet.
Merci pour ton aide.
Eric D
 
E

Eric D

Guest
Re,

Dans l'objet créer précédement, je voudrais y mettre une valeur alors je fait:

Sheets('Feuil1').OLEObjects('Cible').Value = 'Ma Valeur'
mais cela ne marche pas. D'autre part, comment faut il faire pour le parametrer pour du multiligne?
 

MichelXld

XLDnaute Barbatruc
bonjour Eric

s'il s'agit d'une forme automatique

Sub creationForme()
Dim Shp As Shape
Set Shp = Sheets('Feuil1').Shapes.AddShape(msoShapeRectangle, 369, 12, 342, 20)
Shp.Name = 'Cible'
End Sub



Sub suppressionForme()
Sheets('Feuil1').Shapes('Cible').Delete
End Sub


ou sil y a plusieurs formes à supprimer

Sub suppressionShapes_V02()
Dim Obj As Shape
For Each Obj In Sheets('Feuil1').Shapes
If Left(Obj.Name, 5) = 'Cible' Then Obj.Delete
Next
End Sub






et pour ton message 26/04/2006 04:40


Sub creationOleObject()
Dim Obj As OLEObject

Set Obj = Sheets('Feuil1').OLEObjects.Add(ClassType:='Forms.TextBox.1', _
Link:=False, DisplayAsIcon:=False, Left:=39, Top:=12, Width:=342, Height:=60)

With Obj
.Name = 'Cible'
.Object.MultiLine = True
.Object.Value = 'un essai' & vbCrLf & 'de texte'

End With
End Sub



bonne journée
MichelXld
 

Discussions similaires

Réponses
16
Affichages
1 K