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 :

Procedure avec variables publiques


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 32
    Par défaut Procedure avec variables publiques
    Bonjour a tous,

    J’ai une question concernant la declaration de procedure et ses variables.(je debute)

    Voila ma sous-procedure qui cherche la 1ere ligne vide apres la ligne 4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub FirstEmptyLine()
        Range("A4").Select
        While IsEmpty(ActiveCell) = False
            ActiveCell.Offset(1, 0).Activate
        Wend
    End Sub
    Elle marche pour la feuille active seulement.
    Mais comment la declarer pour n’importe quelle feuille de mon classeur ?

    Dans la declaration de mes variables publiques, je pense mettre un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim MySheet as String
     
    Puis je lance FirstEmptyLine avec :
    MySheet = Feuille1
    Call FirstEmptyLine(Feuille1)
    ‘ mon classeur comporte Feuille1, Feuille2, etc
    Donc je ré-écris ma procedure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub FirstEmptyLine(MySheet)
    Sheets(MySheet).Select 
    Range("A4").Select
    While IsEmpty(ActiveCell) = False
            ActiveCell.Offset(1, 0).Activate
    Wend
    End Sub
    Est-ce que c’est la bonne methode ?
    C’est un peu lourd non ?
    Je m’y perds un peu dans la déclaration de variables…

    Merci pour votre aide !

    Wyrgle

  2. #2
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Par défaut
    Ta démarche est bonne, il reste juste à poursuivre le raisonnement.
    La procédure FirstEmptyLine, est utilisable en l'état dans tous les feuillets.
    Une variable publique est une variables globale utilisable dans tous les modules du projet. Une variable publique (utile si tu as plusieurs modules ) ,se déclare de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public Dim MySheet as String
    La syntaxe suivante est incorrecte , pour 2 raisons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim MySheet as String
     MySheet = Feuille1
    Call FirstEmptyLine(Feuille1)   ' 1 )A quoi sert la déclaration Mysheet , 2) FirstEmptyLine n'admet pas de paramétre.
    Il faut remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    MySheet = "Feuille1"
    Call FirstEmptyLine   MySheet
    Et la procédure est une procédure avec un paramétre qu'il faut déclarer de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub FirstEmptyLine( nom_feuillet as string )
        worksheets (nom_feuillet ).Range("A4").Select
        While IsEmpty(ActiveCell) = False
            ActiveCell.Offset(1, 0).Activate
        Wend
    End Sub
    Dans ce code , il n'y a pas besoin de variable publique ou globale , c'est ce que l'on appelle du passage de paramétre.
    Codialement .

Discussions similaires

  1. Unload UserForm incompatible avec mes variables publiques ? Non !
    Par Jabveneau dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 03/03/2009, 14h16
  2. Procedure avec INSERT et champ variable
    Par bbshadoks dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/12/2006, 10h14
  3. Boucle avec variable à incrémenter
    Par snoop dans le forum Linux
    Réponses: 2
    Dernier message: 19/03/2004, 11h07
  4. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 17h20
  5. Execution d'une procedure avec TNotifyEvent;
    Par Chupakabra dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2003, 14h50

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