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 :

VBA - Formula - Insérer une formule référencé à une variable et des cellules dans une cellule [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut VBA - Formula - Insérer une formule référencé à une variable et des cellules dans une cellule
    Bonjour,

    J'ai réussit d'insérer une formule via "formula" ou "formulaR1C1" dans une cellule. Maintenant je dois insérer une formule dans une cellule, et cette formule fait référence à une variable crée et certains cellules dans le même onglet. J'ai essayé de créer la formule comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cot_encaisse_prev(1 To 60) As Double
    Dim cell_cot_encaisse_prev(1 To 60) As String
     
    Range(cell_cot_encaisse_prev(k)).FormulaR1C1 = " = " & cot_encaisse_prev(k) & "  - SUM(R[-4]C:R[-1]C)"
    Je voudrais que la formule me donne = la valeur de cot_encaisse_prev(k) -SUM(q36:q39) (cell_cot_encaisse_prev(k)=q40), mais j'ai trouvé " = valeur de cot_encaisse_prev(k) - SUM(R[-4]C:R[-1]C)"dans la cellule.

    Avez vous une idée ?
    Merci d'avance pour la réponse !!!!

    Siva

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Je préfère utiliser Formula que FormulaR1C1.
    Je trouve ça plus lisible, bien qu'il faille transférer en anglais...

    Pour fins de tests j'ai entré des données de A1 à I1
    En J1, j'ai mis la formule qui suit
    =10+SOMME(A1:I1)

    Dans le code, j'ai mis ceci qui donne le même résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Dim MaVar As Long
        MaVar = 10
        Range("J1").Formula = "=" & MaVar & "-SUM(A1:I1)"
    Si la ligne est aussi une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Dim MaVar As Long, Ligne As Long
        MaVar = 10
        Ligne = 1
        Range("J1").Formula = "=" & MaVar & "-SUM(A" & Ligne & ":I" & Ligne & ")"

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour la réponse , j'ai bien essayé, le votre marche bien, mais quand j'ai appliqué le mien, il ne marche tjs pas. En fait,la colonne et la ligne sont des variables, j'ai essayé d'abord paramétrer la ligne comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Ligne As Long
            Ligne = Right(cell_cot_encaisse_prev(k), 2)
            Range(cell_cot_encaisse_prev(k)).Formula = "=" & cot_encaisse_prev(k) & "-SUM(Q" & Ligne - 4 & ":Q" & Ligne - 1 & ")"
    J'ai exécuté pas à pas, il est bloqué tjs sur cette phrase là, pourtant, toutes les variables prennent de bonnes valeurs. J'ai bien fait attention sur l'espace, du cou, je ne comprend plus rien ...

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Juste avant la ligne en défaut, mets un MsgBox et regarde si tout est vraiment conforme...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim strFormule As String
    strFormule = "=" & cot_encaisse_prev(k) & "-SUM(Q" & Ligne - 4 & ":Q" & Ligne - 1 & ")"
    MsgBox strFormule
    Peut-être que Ligne - 4 donne une valeur impossible (?)

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En fait, j'ai réessayé, si la variable cot_encaisse_prev(k) est définit comme "Long", ça marche, sinon, il ne marche pas. Je ne comprend pas pourquoi

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Tu ne peux pas faire une soustraction avec du texte... simple logique

    Dans certain cas un nombre pourrait être inscrit sous format texte dans Excel; il faut alors le forcer en nombre pour pouvoir le traiter dans une opération:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = CLng(MonNombreTexte) + MonNumérique

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 30/06/2014, 22h04
  2. [XL-2007] Insérer des exceptions dans une formule en SI
    Par alexandrek dans le forum Excel
    Réponses: 5
    Dernier message: 07/02/2011, 17h27
  3. [CR XI] Ordre des tests dans une formule if or then
    Par kikidrome dans le forum Formules
    Réponses: 10
    Dernier message: 24/05/2007, 23h07
  4. [Excel] choisir une cellule dans une formule
    Par arcane dans le forum Excel
    Réponses: 1
    Dernier message: 24/03/2006, 18h05

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