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 :

Déclarer une variable public pour agrandir sa portée au projet


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 233
    Points : 92
    Points
    92
    Par défaut Déclarer une variable public pour agrandir sa portée au projet
    Bonjour,

    J'ai un code qui marche très bien et qui se balade dans différentes worksheets d'un workbook.

    Comme je nomme mes worksheets plusieurs fois, j'ai décidé de les passer en variable. Ca pourra écononomiser à celui qui passera après moi.

    Du coup, j'écris public const en haut d'un module de cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Option Explicit
    Public Const feuilleRecapitulative = "COMPARAISON"
    Public Const importDataReuters = "IMPORT_REUTERS"
    Public Const importDataReutersJMoinsUn = "IMPORT_REUTERS J-1"
    Public Const importDataKondor = "IMPORT_KONDOR"
     
     
    Sub MiseEnPageComparaisonKondor()
     
    'variables
    Dim i, j, maxKondorComparaison, maxImportKondor, maxReutersComparaison, _
    maxImportReuters, maxReutersM1Comparaison, maxImportReuters1 As Integer
     
    'maxKondorComparaison correspond au nombre de maturité pour Kondor sur la feuille Comparaison
    maxKondorComparaison = Worksheets(feuilleRecapitulative).Range("A" & Rows.Count).End(xlUp).Row
    'maxImportKondor correspond au nombre de maturité pour Kondor sur la feuille Import
    maxImportKondor = Worksheets(importDataKondor).Range("C" & Rows.Count).End(xlUp).Row
    For i = 1 To maxKondorComparaison
        For j = 1 To maxImportKondor
            'on vérifie que les taux copiés dans Comparaison correspondent à la maturité
            If Worksheets(feuilleRecapitulative).Range("A" & i).Value = Worksheets(importDataKondor).Range("C" & j).Value Then
                Worksheets(feuilleRecapitulative).Range("C" & i).Value = Worksheets(importDataKondor).Range("F" & j).Value
                Worksheets(feuilleRecapitulative).Range("D" & i).Value = Worksheets(importDataKondor).Range("D" & j).Value
            End If
        Next
    Next
    mais j'ai une erreur dès la 1ère ligne où ma constante est appelée...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maxKondorComparaison = Worksheets(feuilleRecapitulative).Range("A" & Rows.Count).End(xlUp).Row
    la méthode rows a échoué
    Quelqu'un pourrait me filer un coup de main svp?

    Merci d'avance!

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Essaies comme ceci (n'oublies pas les points devant Range et Rows)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets(feuilleRecapitulative)
        maxKondorComparaison = .Range("A" & .Rows.Count).End(xlUp).Row
    End With

    PS: Attention aux déclarations, Seule la dernière variable est Integer

    Il fallait spécifier chaque type devant la nom de la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim i As Integer, j As Integer, maxKondorComparaison As Integer, maxImportKondor As Integer

    PS2: Type aussi tes constantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Const feuilleRecapitulative As String = "COMPARAISON"

Discussions similaires

  1. Problème avec la porté d'une variable public
    Par sab_info dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/06/2013, 13h07
  2. Déclarer une variable public dans un Sub
    Par dragondumond dans le forum VB.NET
    Réponses: 3
    Dernier message: 09/04/2013, 13h16
  3. Réponses: 11
    Dernier message: 05/04/2010, 22h10
  4. Déclarer une variable pour remplacer cout
    Par alvun dans le forum SL & STL
    Réponses: 11
    Dernier message: 29/06/2006, 10h29
  5. Réponses: 5
    Dernier message: 20/09/2005, 22h48

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