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éclaration de constante


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Par défaut Déclaration de constante
    Bonjour à tous,
    J'ai un problème concernant la déclaration de mes constantes. En effet dans l’exécution de mon code j’ai le message d’erreur suivant avec le premier ‘cells’ surligné : « erreur compilation : constante requise ».
    Voici le code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Const FileName1 = Sheets("Parametres").Cells(30, 6)
    Const FileName2 = Sheets("Parametres").Cells(27, 6)
    Const FileName3 = Sheets("Parametres").Cells(29, 6)
     
     
    Sub ok()
     
     
    Range("G" & m + 7, "BF" & m + 20).FormulaLocal = "=Somme('" & FileName1 & "'!F64)"
     
     
    End Sub
    merci à vous tous.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Il n'est pas possible de déclarer une cellule en constante car le contenu de la cellule peut changer.

    Une autre manière de voir les choses:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Const cstA As String = "$A$1"
     
    Private Sub Test()
      Debug.Print (Range(cstA).Value)
    End Sub
    Dernière modification par Invité ; 19/06/2015 à 10h16.

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    A ma connaissance, on ne peut pas mettre dans une déclaration de constante une référence variable (comme le contenu d'une cellule). C'est, par nature, antithétique.

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Par défaut
    Merci pour votre rapidité.
    En fait les valeurs que j'ai dans mes cellules sont des noms de feuilles qui peuvent être amené à changer. Mais le numéro de cellule lui est toujours le même.
    En utilisant ton code SmallFlower je dois utiliser un Call ?

    Je ne suis pas encore experte en vb mais en cherchant sur le net j'ai mis ce code en place mais je ne sais pas s'il est correct et s'il n'y a aucun risque que ça bug dans le temps :

    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
    Public FileName1 As Variant
    Public FileName2 As Variant
    Public FileName3 As Variant
     
     
     
     
    Sub declaration_variables_globales()
     FileName1 = Sheets("Parametres").Cells(30, 6)
     FileName2 = Sheets("Parametres").Cells(27, 6)
     FileName3 = Sheets("Parametres").Cells(29, 6)
    End Sub
     
    Sub ok()
    Call declaration_variables_globales
     
     
    Range("G" & m + 7, "BF" & m + 20).FormulaLocal = "=Somme('" & FileName1 & "'!F64)"
     
     
    End Sub

  5. #5
    Invité
    Invité(e)
    Par défaut
    en revanche tu peux donner l'adresse de la cellule!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Const FileName1 = "Parametres!F30"
    Sub test()
    Mvar = Range(FileName1).Value
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Const FileName1 = "[Classeur2]Parametres!F30"
    Sub test2()
    Mvar = Range(FileName1).Value
    End Su
    b

Discussions similaires

  1. déclaration de constantes dans les packages
    Par micamel dans le forum PL/SQL
    Réponses: 6
    Dernier message: 02/03/2010, 17h15
  2. [2003] Déclaration de constante pour tout le classeur
    Par rtg57 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/01/2009, 17h09
  3. [String] Déclaration de constantes
    Par bulbo dans le forum Langage
    Réponses: 10
    Dernier message: 22/07/2008, 17h19
  4. déclaration de constante
    Par DiverSIG dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/06/2007, 08h07
  5. Déclaration de constantes
    Par gilv57 dans le forum C
    Réponses: 2
    Dernier message: 13/12/2006, 21h35

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