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 :

Comment arrondir un calcul?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 6
    Par défaut Comment arrondir un calcul?
    Bonjour,

    Voilà je veux diviser les valeurs de 2 cellules sur une même feuille, mais je souhaite arrondir UNIQUEMENT a l'entier superieur et pas le plus proche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim a as integer, b as integer
    a=12
    b=5
    thisworkbook.sheets("Calcul").cells(1,3)=round(a * b / 100)
    Comment faire pour arrondir uniquement à lentier supérieur? (pour l'instant je compare le calcul non arrondi et la valeur arrondie, et si elle est inférieure j'y ajoute 1).

    Merci

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Avec la fonction plafond (en anglais ceiling)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim a as integer, b as integer
    a=12
    b=5
    thisworkbook.sheets("Calcul").cells(1,3)=Application.WorksheetFunction.Ceiling(a * b / 100, 1)

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    essaye donc tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Command1_Click()
      a = 4
      b = 5
      MsgBox -Int(-a / b)
    End Sub
    Bonne continuation ...

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Sauf que int renvoi l'entier et non l'arrondi a l'unité supérieure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    12*4/100 = 0.48
     
    int(12*4/100)=0
     
     
    Application.WorksheetFunction.Ceiling(12 * 4 / 100, 1) = 1

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir jfontaine,

    Tu lis apparemment mal ou n'as pas mis tes lunettes !

    voilà, donc ce que tu aurais du écrire en respectant mon code :

    MsgBox -Int(-12 * 4 / 100)

    ce qui te donne bien évidemment 1.

    Bonne continuation...

  6. #6
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Je connaissais la fonction Round de VB disponible aussi dans VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub toto()
        MsgBox Round(6 / 100, 2)
    End Sub

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

Discussions similaires

  1. Comment arrondir à l'entier supérieur ?
    Par kuranes dans le forum Access
    Réponses: 3
    Dernier message: 29/11/2005, 17h42
  2. Comment arrondir une division à l'excès ?
    Par titiyo dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2005, 13h35
  3. [CR] Comment arrondir un chiffre a 3 ap la virgule en code
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 10/06/2004, 18h59
  4. Réponses: 8
    Dernier message: 13/01/2003, 17h45
  5. Réponses: 8
    Dernier message: 18/09/2002, 03h20

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