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 :

fonction ne se calcule. affiche "=somme(. . ." [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 29
    Par défaut fonction ne se calcule. affiche "=somme(. . ."
    Bonjour
    Voilà je fait par exemple ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub v()
    plag = Range(Cells(5, 1), Cells(10, 1)).Address(False, False)
    '  plag contient donc "a5:a10"
    ActiveSheet.Cells(13, 1).Formula = "=somme(" & plag & ")"
    End Sub
    Résultat
    La cellule a13 affiche : =somme(a5:a10)
    au lieu d'afficher le résultat
    je suis obligé de l'éditer (F2) puis valider pour que le résultat soit affiché

    J'ai déjà rencontré ce type de probleme. J'ai cherché sur le net, le forum, la faq. Désolé je n'ai trouvé que des gens ayant le problème

    J'ai testé Application.volatile sans vraiment comprendre de quoi il sagit
    et un Cells(13,1).Calculate
    un application.calculate.
    Rien y fait.
    J'ai testé sur version 97 et vb6.3 , c'est idem
    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut FORMULATION
    Bonsoir gdoise, Bonsoir le Forum,

    Il te faut traduire la fonction Somme en Anglias.
    Tu aurais pu t'en appercevoir en utilisant l'enregistreur.

    Tu peux donc utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub v()
     
    With ActiveSheet
            plag = Range(.Cells(5, 1), .Cells(10, 1)).Address(False, False)
            With .Cells(13, 1)
                .Formula = "=Sum(" & plag & ")"
                'pour n'avoir qu'une valeur en lieu et place d'une formule
                .Value = .Value
            End With
    End With
     
    End Sub
    Reviens si nécessaire.

    Bonne soirée.

  3. #3
    Membre éclairé Avatar de Duddy
    Homme Profil pro
    Agent de maitrise
    Inscrit en
    Novembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Agent de maitrise
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 257
    Par défaut
    Bonjour le forum,

    J'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    plage = Range(Cells(5, 1), Cells(10, 1))
    '  plag contient donc "a5:a10"
    Cells(13, 1).Select
    Cells(13, 1).Formula = "=sum(plage)"
    et cela a fonctionné sur mon poste

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonsoir Dudddy,

    Une remarque : le ne sert, comme d'ailleurs la plupart du temps, à rien.

    Utiliser tant que possible l'astuce de mercatog ou Silkyroad (je ne sais jamais)

    Gdoise,

    J'espère avoir répondu à ta question quant à la formulation.

    Maintenant, un code beaucoup plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub v2()
    With ActiveSheet
        .Cells(13, 1).Value = WorksheetFunction.Sum(Range(.Cells(5, 1), .Cells(10, 1)))
    End With
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 29
    Par défaut
    Décidément ce forum m'épate!! Merci les gars
    Bon pb : sum au lieu de somme j'y avait pensé et ça fonctionne chez moi en effet . Mais pas au boulot (version 97 sr2)
    Ni le .value=.value ni le select n'ont d'effet ! hélàs

    Le WorksheetFunction.Sum ca marche oui . Merci Mais bon j'aurais preferé avoir une formule. car les changement de valeur dans les cellules ne se reporterons pas en temps reel. Mais merci pour le moment je vais faire ca .
    C'est "moins pire"

    ha décidement quel pb ce truc là!

    Petites précisions:Sur ma version d'excel au boulot donc:
    - si je met somme( ça affiche la formule puis le résultat si je fait F2 puis valide sur chaques cellules. grrrr !

    - si je met sum( ça affiche la formule puis l'erreur #NOM? si je fait F2 puis valide sur chaques cellules. double grrrr!!

  6. #6
    Expert éminent 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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub v()
    Dim Plag As String
     
    With Sheets("Feuil1") ' à adapter
        Plag = .Range(.Cells(5, 1), .Cells(10, 1)).Address(False, False)
        .Cells(13, 1).Formula = "=SUM(" & Plag & ")"
        '.Cells(13, 1).Formula="=SUM(A5:A10)" 'Pourquoi passer par Plag
    End With
    End Sub

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut formulation
    Bonjour Gdoise, Bonjour le Forum,

    sum au lieu de somme j'y avait pensé et ça fonctionne chez moi en effet . Mais pas au boulot (version 97 sr2)
    Essaie l'enregistreur de macro au travail pour en voir le résultat

    Ni le .value=.value ni le select n'ont d'effet
    Le Select ne sert à rien. Quant au .Value = .Value, cela m'étonne

    j'aurais preferé avoir une formule.
    Ls valeurs peuvent changer. Il suffit de réactiver la procédure soit au cours d'une autre procédure, soit en évènementiel (SelectionChange, ...)

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 29
    Par défaut
    Merci les zamis pour vos nouvelles participation que je vois là sur le tard.
    Je ne suis plus à ce poste (ou j'étais là bénévolement).
    En tout cas je vais classer en résolu car ca roule grace à votre aide.
    En revanche je n'ai pas eu le temps de tester l'enregistreur, si je repasse là bas pour le faire j'en parlerais.... THANKS

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

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