Page 1 sur 1

Supprimer une zone de texte sous condition qu'elle existe

Publié : jeu. 31 oct. 2019, 9:07
par Lone_Hati
Bonjour, Je commence depuis peu à faire des macros sur Excel et je ne trouve pas le moyen de réaliser ce que je veux faire, chaque tentative est un échec.
Jaimerai que lorsqu'on clique sur une case, la zone texte A si elle existe qu'elle soit supprimer sinon la macro ne fais rien
Je ne trouve pas la partie if

Sub supprimer_zonetext
'
'

If (zonetexte A exist) then
ActiveSheet.Shapes.Range(Array("Zonetext A")).Select
Selection.Delete
End sub

Re: Supprimer une zone de texte sous condition qu'elle existe

Publié : jeu. 31 oct. 2019, 16:58
par marcww
Salut
Qu'appelles-tu zone de texte ?
Case = Cellule ?
En principe une zone de texte est dessinée et n'est pas dépendante d'une cellule.
C'est pas d'un commentaire (lié à la cellule) dont tu veux parler ?
Tu peux nous joindre un ex de fichier (via cjoint.com) et/ou une image.

Re: Supprimer une zone de texte sous condition qu'elle existe

Publié : jeu. 14 nov. 2019, 14:27
par Lone_Hati
Voici une capture de la feuille, une petite explication de ce que je veux faire, je suis entrain de faire une simulation version Excel et sur cette feuille en cliquant sur une zone "À" une zone texte exemple 1 (zone texte des formes surligné en jaune sur la capture) apparaît j'aimerai mettre une condition dans ma macro pour quand je clique sur CC l'exemple 1 se supprime seulement si on met pas une condition la fonction de suppression va se faire et mettre un message d'erreur comme quoi la zone texte existe pas ce qui est normal car quand on clique pas sur À la zone sera pas présente

Re: Supprimer une zone de texte sous condition qu'elle existe

Publié : ven. 15 nov. 2019, 11:45
par marcww
Tes zones de texte sont créées au moment de cliquer sur A ou CC ou CCC, c'est bien ça ?
Ou elles existent mais ne sont affichées qu'au moment de cliquer ?
Tu nommes tes zones de texte ?
La zone de texte que tu veux supprimer est vide ?

Re: Supprimer une zone de texte sous condition qu'elle existe

Publié : ven. 15 nov. 2019, 15:03
par Lone_Hati
Oui c'est bien ça mes zone de texte sont bien créées quand je clique sur À CC Ccc et mes zones de texte on bien un nom pour la case À ça sera Zonetexte A
Pour CC Zonetext CC ect

Re: Supprimer une zone de texte sous condition qu'elle existe

Publié : ven. 15 nov. 2019, 15:04
par Lone_Hati
Et non ma zone de texte ne sera pas vide elle contiendra un message

Re: Supprimer une zone de texte sous condition qu'elle existe

Publié : ven. 15 nov. 2019, 17:14
par marcww
Pour tester si la zone de texte existe et la supprimer tu peux utiliser ça :

Code : Tout sélectionner

For Each Zonetxt In ActiveSheet.Shapes
         If Zonetxt.Name = "ZoneTexte A" Then Zonetxt.Delete
Next Zonetxt

Re: Supprimer une zone de texte sous condition qu'elle existe

Publié : mar. 03 déc. 2019, 14:57
par Lone_Hati
Merci bien ça a régler mon problème il me reste encore une partie que je ne trouve pas à régler,
C'est du même style je cherche à savoir si une forme rectangulaire existe sinon il faut la crée je te met le code sur le msg suivant

Re: Supprimer une zone de texte sous condition qu'elle existe

Publié : mar. 03 déc. 2019, 14:58
par Lone_Hati
Sub Simulation2_Transfère()

'

' Simulation2_transfère Macro

'



'

ActiveSheet.Shapes.AddShape(msoShapeRectangle, 3.75, 82.5, 132.75, 37.5).Select

With Selection.ShapeRange.Line

.Visible = msoTrue

.ForeColor.ObjectThemeColor = msoThemeColorBackground2

.ForeColor.TintAndShade = 0

.ForeColor.Brightness = 0

.Transparency = 0

End With

With Selection.ShapeRange.Fill

.Visible = msoTrue

.ForeColor.ObjectThemeColor = msoThemeColorBackground1

.ForeColor.TintAndShade = 0

.ForeColor.Brightness = 0

.Transparency = 0

.Solid

End With

Selection.OnAction = "Texte_A"

Selection.ShapeRange.Name = "Rectangle A"



ActiveSheet.Shapes.AddShape(msoShapeRectangle, 183.75, 81.75, 134.25, 39). _

Select

With Selection.ShapeRange.Line

.Visible = msoTrue

.ForeColor.ObjectThemeColor = msoThemeColorBackground2

.ForeColor.TintAndShade = 0

.ForeColor.Brightness = 0

.Transparency = 0

End With

With Selection.ShapeRange.Fill

.Visible = msoTrue

.ForeColor.ObjectThemeColor = msoThemeColorBackground1

.ForeColor.TintAndShade = 0

.ForeColor.Brightness = 0

.Transparency = 0

.Solid

End With

Selection.OnAction = "Module4.Texte_CC"

Selection.ShapeRange.Name = "Rectangle CC"



For Each Zonetxt In ActiveSheet.Shapes

If Zonetxt.Name = "ZoneText A" Then Zonetxt.Delete

Next Zonetxt



For Each Zonetxt In ActiveSheet.Shapes

If Zonetxt.Name = "ZoneText CC" Then Zonetxt.Delete

Next Zonetxt



'Changer de feuille



Sheets("simulation transfère 2").Select

Sheets("Transfère").Visible = True

Sheets("simulation transfère 2").Select

ActiveWindow.SelectedSheets.Visible = False
End sub

Re: Supprimer une zone de texte sous condition qu'elle existe

Publié : mar. 03 déc. 2019, 17:20
par marcww
Salut
Tu peux essayer ça :

Code : Tout sélectionner

'teste si la forme NomShape existe
aa = 0
For Each sh In ActiveSheet.Shapes
         If sh.Name = "NomShape" Then aa = 1
Next sh

'si la forme Nomshape n'esite pas on la crée (avec le nom NomShape)
If aa = 0 Then
With ActiveSheet.Shapes.AddShape(msoShapeRectangle, 60, 120, 140, 60)
    .Name = "NomShape"
End With
End If
Pense à mettre ton code entre balises code (avec l'icône </> )

Re: Supprimer une zone de texte sous condition qu'elle existe

Publié : mer. 04 déc. 2019, 14:58
par Lone_Hati
Merci bien ça m'a beaucoup aidé