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 :

Faire afficher par VBA une valeur dans une cellule avec une fonction spécifique


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Faire afficher par VBA une valeur dans une cellule avec une fonction spécifique
    Bonjour à tous, jusqu'à présent j'arrivais toujours à trouver une réponse à mes questions, mais là je bloque complet...

    Je cherche à automatiser une opération à la ***, à savoir en cliquant sur un bouton de ma feuille, pouvoir rajouter des lignes à un tableau déjà rempli, avec dans certaines cellules de la ligne rajoutée des formules à base d'arrondi.sup...
    Là où ça bugge, c'est quand VBA execute le code suivant (j'ai simplifié le code au maximum, pour vérifier que c'etait bien le "arrondi.sup" qui pose problème...:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("L10").Value = "=ARRONDI.SUP(2.1;0)"
    Il semble donc que ce soit le "arrondi.sup" qui pose souci, mais je n'arrive pas à trouver de solution, fonction qui remplace, etc... VBA n'implante pas dans la cellule "L10" mon texte tel quel, de façon bête et méchante ? Pourant si je remplace ma formule par "blablabla", je retrouve bien blablabla dans la cellule "L10"... Bref je suis un peu perdu

    Merci d'avance pour votre aide !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Peut-être ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("L10").Formule = "=ARRONDI.SUP(2.1;0)"
    Bonne journée

  3. #3
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Tarto, bonjour le forum,

    Tu veut insérer la formule ou le résultat de la formules ? Ton code insère le résultat mais il faut remplacer le ponit vigule par une virgule :

    Range("L10").Value = "=ARRONDI.SUP(2.1;0)" => Range("L10").Value = "=ARRONDI.SUP(2.1,0)".

    [Édition]
    Bonjour Vincent, on s'est croisé...

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Merci pour vos deux réponses (surtout aussi rapides!!), je cherchais bien à insérer la formule elle-même, du coup j'ai mixé vos deux réponses pour obtenir ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("L10").Formula = "=ARRONDI.SUP(2.1,0)"
    Ca m'insère bien la formule, puisque quand je vais dessus sur la feuille, elle est écrite correctement, mais Excel n'a pas l'air d'aimer complètement, il affiche #NOM... Et si je rentre dans la cellule et tape entrée, elle affiche le résultat correct..... C'est déjà un début, mais je me vois mal faire ça pour toutes mes cellules à chaque modif

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Huuuummm,

    Bien vérifier que vos cellules avec les formules ne sont pas formatées en 'texte'.
    J'espère que c'est ça

  6. #6
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour le fil, bonjour le forum,

    Oui j'avais remarqué ça et si tu fais [F2]+[Entrée], tu retrouves bien la formule. Malheureusement il me semble que j'avais lu une fois la parade mais je ne l'ai pas retenue...

  7. #7
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour à tous !

    Pour les formules Excel Francais, je suggère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuille source").Range("F4").FormulaR1C1Local = "=ARRONDI.SUP(2,1;0)"
    Cordialement,
    Kimy

  8. #8
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour le fil, bonjour le forum,

    Yeah Kimy_ire ! c'est ça... Aurais-tu une explication pourquoi dans l'autre cas il faut éditer puis valider pour que ça marche ?

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Ah, ça marche chez toi aussi le code de Kimy_ire ? Chez moi ça renvoie une erreur d'execution '1004', définie par l'application ou l'objet... J'y comprends plus rien là

  10. #10
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Parce que tu places une formule incohérente. Le nombre d'argument n'est pas respecté puisque le ";" n'est pas pris en compte.
    Si tu le place dans la formule, la macro va te jeté.

    L'idéal est donc de passer par les formules en Anglais ou d'utiliser la fonction proposée. Mais celle-ci ne fonctionnera que sur les postes avec la même langue.

    Enfin, le mieux pour comprendre, c'est de presser la touche .


    Cordialement,
    Kimy

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Hello, et bonne année à tous !

    Je reviens sur le sujet, car après un peu de temps passé sur d'autres trucs, j'ai un peu de temps pour développer ce module, et j'ai toujours mon problème de cellule remplie par VBA par une formule avec un arrondi sup.

    Le constat actuel est que quand j'insère le code ci-dessous, la cellule (déjà paramétrée en format nombre et non texte) renvoie #NOM, et quand j'édite la cellule (F2+Entrée) elle renvoie la valeur voulue (ici 3) avec la formule derrière...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil1").Range("L5").Formula = "=ARRONDI.SUP(2.1,1)"
    Si j'essaye d'appliquer le code de Kimy_ire avec FormulaR1C1Local, j'ai l'impression que c'est le Local qui bugge, et renvoie un "Erreur d'execution 1004", mais je ne trouve pas dans l'aide quoi que ce soit qui m'aiderait à solutionner ce bug....
    Sachant par ailleurs dans le code de Kimy_Ire, l'arrondi sup se programme avec ARRONDI.SUP(2,1;0), alors que chez moi il ne marche qu'en remplacant les , par . et ; par , ... Est-ce que ça pourrait expliquer des bugs ou autres ?

    Si vous avez deux trois idées, grâce à ça j'aurai fini mon programme !!!

  12. #12
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut


    Bonjour, bonjour !

    Même une version française d'Excel reste en interne native en anglais ‼ La propriété Formula est donc en anglais …

    Et à quoi peut donc bien servir la propriété FormulaLocal ?‼

    __________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    __________________________________________________________________________________________________
    Tous unis, tous Charlie

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    La propriété Local, j'avoue ne pas avoir compris à quoi elle pouvait servir, il faudrait que Kimy_Ire nous explique...
    Pour ce qui est du francais/anglais, je veux bien que mon excel soit en anglais, il faut juste que j'arrive à programmer ma fonction, et là je bloque...

  14. #14
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut





    En brûlant deux neurones, ce n'est pas difficile de déduire la propriété FormulaLocal est donc dans la langue locale !





    __________________________________________________________________________________________________
    Heureux l'étudiant qui, comme la rivière, suis son cours sans quitter son lit ‼

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Si tu veux pas aider des gens qui débutent, ne traine pas sur des forums, développe ta science dans ton coin et garde la pour toi !
    Au fait, pour les deux neurones que t'as brulé, tu veux un dédommagement ?

  16. #16
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonsoir,

    pour conclure avant le

    voir Pourquoi autant de proprietes 'formula' differentes ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/11/2007, 11h53
  2. Récupérer une valeur dans un champ d'une autre table
    Par Kareg dans le forum Modélisation
    Réponses: 15
    Dernier message: 24/10/2007, 14h16
  3. Comment afficher une valeur dans un edittext avec un autre programme
    Par pitizone dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 14/05/2007, 07h45
  4. [XI] Calcul de valeurs dans un graphique avec une periode de temps
    Par campia dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 23/04/2007, 09h17
  5. Renvoi d'une valeur dans un champ avec un style
    Par m@thieu dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/11/2005, 18h09

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