IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Tester si un objet Range est définit


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Points : 39
    Points
    39
    Par défaut Tester si un objet Range est définit
    Bonjour, désolé pour le titre qui sera peut être pas trop explicite par rapport à ma demande mais j'ai du mal à résumer ça en quelques mots .
    Voilà tout : J'ai un module simple dans lequel je déclare Ensuite une procédure qui définit cette plage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Init()
    Dim MySheet As Worksheet
    Set MySheet = Sheets("Liste")
    Set Plage = MySheet.Range("A1").CurrentRegion
    Set Plage = Plage.Offset(1, 0).Resize(Plage.Rows.Count - 1)
    'et ensuite je trie...
    Plage.Sort Key1:= 'etc. etc.
    '(...)
    End Sub
    Pour ne pas toujours passer par cette sub Init, par exemple dans ma procédure pour rechercher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub Rechercher(ByRef Nom As String, ByRef Pre As String)
    Call Init
    Dim R As Range
    Set R = Plage.Find(Nom)
    '(... ...)
    End Sub
    J'ai pensé à poser une condition dans le style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Plage Is Nothing Then Init
    Ce qui m'aurait permis de pas systématiquement appeler la procédure notamment dans le cas de plusieurs recherches successives
    Oui mais voilà, cette ligne me provoque une erreur
    Je pense que quelque chose de basique m'échappe mais je comprends pas
    Merci pour votre aide

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Et si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If R Is Nothing Then Init
    Mais si R n'est pas dans la même procédure, tu devras le déclarer en public.
    Bonne journée

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Oui c'est vraiment pas bête, c'est à dire que si une recherche a été faite auparavant, on n'appelle pas Init.
    Mais j'ai une question toute bête :
    Je déclare (dans mon Module) Private Plage.
    Init est une procédure Privée également.
    Est ce que, une fois la que j'atteins la fin de la procédure Publique 'Recherche' (End Sub), les valeurs privées de mon module sont effacées et ne sont conservent pas leurs valeurs jusqu'au prochain appel à une procédure de ce module ? (J'espère que je me suis bien exprimé )
    Sinon je vais essayer avec Public Plage As Range, mais ça me chagrine.
    Merci pour ton aide

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    BONJOUR

    les variables private declaré en tete de module conserverons leurs valeurs dans le module, par contre les variables declarées a l interieur des procedures perdrons leurs valeurs

Discussions similaires

  1. Comment tester si un objet est instancié?
    Par ostralo dans le forum C++
    Réponses: 8
    Dernier message: 26/01/2009, 15h49
  2. Tester si un Range est "grouper" ?
    Par AllyKo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/05/2008, 10h34
  3. JavaME : tester si un objet est null
    Par ®om dans le forum Java ME
    Réponses: 4
    Dernier message: 31/01/2008, 10h18
  4. [C#]Question bête : Comment tester si un objet est créer?
    Par ben_ghost dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/08/2006, 20h50
  5. Comment tester qu'un objet String est bien initialisé
    Par Jones dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 17/09/2004, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo