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 :

Problème de formule


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
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Par défaut Problème de formule
    Bonjour,

    J'ai un problème probablement tout bête pour les experts en excel,

    Voila, j'insère une formule dans une case par macro.

    Dans cette formule je me sers d'une variable qui contient un nombre à virgule.

    Le problème est que quand j'appelle la fonction SOMME avec cette variable, excel l'interprète comme deux nombres différents.

    Exemple si mavariable est égale à 23,3

    je lance un SOMME(L1C1,23,3) donc il fait la somme des 3 nombres au lieu de A1B1 + 23,3 ...

    J'espère que j'ai été clair

    Merci d'avance

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Je viens de créer une variable var = 23,5

    Par insertion/nom et ensuite dans une cellule la fonction :

    J'obtiens biens 26,5 (A3=3)

    Peux tu montrer le code que tu utilses ?

    Edit:

    Si je creer la variable par macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Macell As Range
     
    Range("A3") = 3
    Set Macell = Range("A2")
     
    ActiveWorkbook.Names.Item("var2").Delete
    ActiveWorkbook.Names.Add Name:="var2", RefersToR1C1:="=23.5"
    Macell.FormulaR1C1 = "=SUM(var2," & Range("A3").Value & ")"
    MsgBox Macell  ' ici j'ai bien 26,5 !

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut nicolav et le forum
    je lance un SOMME(L1C1,23,3)
    Moi, je suis aussi bête qu'excel : le séparateur de paramettre étant la virgule (en anglais), 2 virgules déterminent 3 paramètres.
    Et avec Ça donne quoi ?
    A+

  4. #4
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Par défaut
    Le problème c'est que je ne sais pas d'avance la valeur qui sera dans la variable.

    Donc je ne peux pas faire en dur des


  5. #5
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    Salut,

    J'avoue que je ne comprend pas bien le problème. A priori si tu as bien déclaré ta variable en tant que double, il devrait comprendre tout seul que c'est un nombre décimal...

    Sinon tu peux toujours utiliser un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SOMME(L1C1,replace(var,".",","))
    Si ça ne marche pas, inverse le "." et la "," dans le replace (je me gourre toujours avec les histoires de conversion anglais/français).

    Ceci dit je répète, il y a un truc étrange dans la problématique que tu pose...
    Question au passage, tu parles bien d'une fonction sous VBA et pas sous Excel?

  6. #6
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Par défaut
    voici le code j'utilise :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim valeurAujourdhui As Double
    valeurAujourdhui = ApplicationExcel.ActiveSheet.Cells(2, 25).Value
     
    ApplicationExcel.ActiveSheet.Cells(2, 25).FormulaR1C1 = "=SUM(SUM(R5C10:R" & DerniereLigne & "C10)," & valeurAujourdhui & ")"
    Ma variable valeurAujourdhui vaut 56,6

    Quand je vais dans la feuille excel et que je regarde la formule dans la case (2,25), j'obtiens ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SOMME(L5C10:L1220C10);56;6)

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Par défaut
    Bonjour Nicolav

    je penses que tu devrais utiliser la solution de conconbrr avec ta variable valeurAujourdhui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    valeurAjourdhui=Replace(valeurAujourdhui,",",".")
    Cdt

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

Discussions similaires

  1. Excel Problème de formule
    Par jbidou88 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 12/05/2006, 10h20
  2. PRoblème de formule dans Excel
    Par jbidou88 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/05/2006, 09h35
  3. problème de formulation d'une requête
    Par seiryujay dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/08/2004, 17h13
  4. Problème de formulation de requète
    Par tellitocci dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/06/2004, 05h05
  5. [EXCEL-OLE] Problème de formule
    Par qi130 dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 13/10/2003, 18h49

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