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 :

Intégration d'une variable VBA dans une formule


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Intégration d'une variable VBA dans une formule
    Bonjour à tous.
    Comment intégrer une variable VBA dans une formule Excel ?
    Avez vous un exemple ?
    Merci d'avance,
    Stéphane

  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 543
    Points
    15 543
    Par défaut
    Tu la prends où cette variable ?
    Comment insères-tu cette formule ? Dans Excel ? Dans VBA ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    Tu la prends où cette variable ?
    Comment insères-tu cette formule ? Dans Excel ? Dans VBA ?
    Bonjour ouskel'n'or.
    Je veux qu'une cellule renferme une somme des éléments de la colonne D allant de la ligne n° debut à la ligne n°fin.
    Le problème, en fait, c'est que le programme calcule au moment de l'exécution la variable début et la variable fin.

    J'utilise l' instruction exacte pour effectuer cette somme dynamique :
    ActiveCell.FormulaR1C1 = "=SUM(" + "D" + CStr(debut) + ":" + "D" + CStr(fin) + ")"

    En fait, si debut = 5 et fin = 8,
    cela ne fait que ranger dans la cellule active la formule suivante :
    =SOMME('D5':'D8')

    Je ne comprends pas ce que viennent faire ces simples guillemets (que j'ai écrits en rouge).
    Le programme met les guillemets simples et je ne sais pas pourquoi.

    A mon avis, tout le problème vient d elà, et je ne sais comment le résoudre.

    Voilà ,

    D'avance Merci,
    Stéphane

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    En remplacant l'opérateur + par l'opérateur & de concaténation,
    le problème reste là.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    En fait,
    comme m'a indiqué jacques_jean,
    au lieu d'utiliser ActivaCell,
    je référence la cellule où je veux inclure la formule de cette manière Cells(1,3),
    et là ça marche.
    Stéphane

    PS:
    C'est quand même bizarre qu'avec ActivaCell, ça ne marche pas, mais je vais prendre la méthode qui marche.

  6. #6
    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 543
    Points
    15 543
    Par défaut
    Ce n'est pas ActivaCell mais ActiveCell

  7. #7
    Invité
    Invité(e)
    Par défaut
    Re Stéphane31,

    Cela fonctionne aussi, mais ne pas mettre Formula :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub formule()
    debut = 4
    fin = 8
     
    ActiveCell = "=SUM(D" + CStr(debut) + ":E" + CStr(fin) + ")"
    End Sub
    Dernière modification par Invité ; 01/09/2007 à 04h45. Motif: Ajout des balises codes (Sélection du code + #) : c'est plus clair

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 120
    Points : 181
    Points
    181
    Par défaut
    Salut le forum

    Ca fonction aussi avec Formula
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub essai()
    Dim Debut As Byte, Fin As Byte
    Debut = 5
    Fin = 8
    ActiveCell.Formula = "=SUM(D" & CStr(Debut) & ":D" & CStr(Fin) & ")"
    End Sub

    Mytå_Qc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Résultat d'une requete sql dans une variable VBA
    Par psylo24 dans le forum Access
    Réponses: 4
    Dernier message: 06/06/2013, 03h38
  2. Réponses: 9
    Dernier message: 23/06/2009, 10h54
  3. Réponses: 2
    Dernier message: 17/06/2008, 20h55
  4. Réponses: 6
    Dernier message: 23/08/2007, 09h49
  5. [VBA-E] Une fonction Excel dans une fonction VBA
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/07/2006, 10h21

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