• Initiateur de la discussion Initiateur de la discussion Eric D
  • 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 !

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
 
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
 
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
 
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?
 
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
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
2 K
Réponses
1
Affichages
1 K
Retour