Tester existance d'une variable

lanzarotte

XLDnaute Nouveau
Bonjour,
J'aimerais tester l'existance d'une variable. Si celle-ci existe j'effectue mon code et si celle-ci n'existe pas je ne fais rien.
Entrement dit :
Si MaVariable existe alors
faire ...
Fin Si

Voici mon code, je veux tester l'existance d'une variable type Shape (Zone de Texte ) définie par son nom ActiveSheet.Shape("NomZoneTexte")

Sub MiseAJourCommentaire()


Dim numeroAction As Integer

Dim NomZoneTexte As String


For numeroAction = 3 To 18 Step 3

NomZoneTexte = "ztxt" & numeroAction

'''' ICI JE VOUDRAIS Faire Si ActiveSheet.Shapes(NomZoneTexte) existe _ alors faire '''''

ActiveSheet.Shapes(NomZoneTexte).Select
Selection.Characters.Text = FeuilCoeur.Cells(3, numeroAction)

'''''''''Fin Si'''''''''''''''''''''''''''''''''''''''''''

Next numeroAction

End Sub


Merci pour votre aide !
 

Pierrot93

XLDnaute Barbatruc
Re : Tester existance d'une variable

Bonjour,

regarde peut être le code ci-dessous si il peut t'aider, la procédure appele une fonction personnalisée ...

Code:
Option Explicit
Sub test()
Dim nomshape As String
nomshape = "Rectangle 1"
If Not ShapeExiste(nomshape) Is Nothing Then MsgBox "OK existe"
End Sub


Function ShapeExiste(f As String) As Shape
On Error Resume Next
Set ShapeExiste = ActiveSheet.Shapes(f)
End Function

Bon après midi
@+
 
C

Compte Supprimé 979

Guest
Re : Tester existance d'une variable

Bonjour à tous,

Ou alors
Code:
Sub MiseAJourCommentaire()
  Dim numeroAction As Integer
  Dim NomZoneTexte As String
  For numeroAction = 3 To 18 Step 3
    NomZoneTexte = "ztxt" & numeroAction
    On Error Resume Next
    ActiveSheet.Shapes(NomZoneTexte).Select
    If Err.Number = 0 Then
      Selection.Characters.Text = FeuilCoeur.Cells(3, numeroAction)
    End If
    On Error GoTo 0
  Next numeroAction
End Sub

A+
 

lanzarotte

XLDnaute Nouveau
Re : Tester existance d'une variable

Merci à tous pour vos réponses ca va m'aider pour la suite. Notamment je vais regarder de plus pret les error go to... et peut-être optimiser mes sub.

Une des solutions que j'ai trouvée (merci au Forum Excel !) est :

Function ZoneTexteExiste(NomZoneTexte As String) As Boolean

Dim ZoneTexte As Shape

ZoneTexteExiste = False
For Each ZoneTexte In ActiveSheet.Shapes
If (ZoneTexte.Name = NomZoneTexte) Then
ZoneTexteExiste = True
End If
Next ZoneTexte

End Function
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 863
Membres
103 979
dernier inscrit
imed