Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…