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 :

Arrondir" dans une condition"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 88
    Par défaut Arrondir" dans une condition"
    Bonjour,

    pour cette condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Range("K18").Value < Range("K16").Value - Range("K19").Value
    Comment pourrais je dire que If Range("K18").Value < à l'arrondi à un chiffre après la virgule de ça (Range("K16").Value - Range("K19").Value)

    je sais que c'est Round.. mais j'arrive pas à l'utiliser comme il faut

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Round n'est pourtant pas la fonction la plus délicate à gérer.
    Je ne l'ai jamais utilisée telle quelle dans mes macros, mais on va la décortiquer

    Aide Microsoft :

    Description

    Renvoie un nombre arrondi à un nombre spécifié de positions décimales.

    Syntaxe

    Round(expression [,numdecimalplaces])

    La syntaxe de la fonction Round comprend les éléments suivants :

    Élément Description
    expression Expression numérique arrondie.
    numdecimalplaces Facultatif. Nombre indiquant combien de positions à droite de la virgule sont incluses dans le nombre arrondi. Si cette valeur est omise, les entiers sont arrondis par la fonction Round.

    On a deux "données" à lui fournir, seule la première est obligatoire :

    - l'expression sur laquelle on fait l'arrondi
    - la précision de l'arrondi (= nombre de chiffres après la virgule). Si on indique rien, on fait un arrondi sur le nombre entier

    ce qui donnerait (à tester)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Range("K18").Value < Round(Range("K16").Value - Range("K19").Value, 1) Then

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 88
    Par défaut
    Merci d'avoir pris le temps de m'aider mais aussi de m'expliquer
    Bonne journée

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Il faut quand même être prudent avec la fonction Round() en VBA. Je ne sais pas si c'est toujours le cas, mais, à un certain moment, Microsoft avait implanté une fonction Round() conforme à une norme IEEE, pour l'arrondi du 5. Selon cette norme le 5 doit être arrondi à la valeur paire. Cela veut ou voulait dire que le 5 peut être arrondi à la hausse ou à la baisse.

    Exemples:

    3,5 est arrondi à 4, parce que 4 est pair et 3 est impair (à la hausse)
    2,5 est arrondi à 2, parce 3 est impair et 2 est pair (à la baisse)

    5,55 est arrondi à 5,6
    5,45 est arrondi à 5,4

    Ce test rapide avec Excel 2010 montre que cela semble être toujours le cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Arrondir5()
        Dim j As Integer
        j = 1
            For i = 0.5 To 10.5 Step 1
            Cells(j, 1).Value = i
            Cells(j, 2).Value = Round(i, 0)
        j = j + 1
        Next
    End Sub
    Si tu veux que le 5 soit toujours arrondi à la hausse, tu vas avoir besoin d'une procédure adaptée en conséquence.

  5. #5
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Si tu veux que le 5 soit toujours arrondi à la hausse, tu vas avoir besoin d'une procédure adaptée en conséquence.
    Bonjour
    5 toujours arrondi à la hausse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Arrondir5()
        Dim j As Integer
        j = 1
            For i = 0.5 To 10.5 Step 1
            Cells(j, 1).Value = i
            Cells(j, 2).Value = WorksheetFunction.MRound(i, 1)
        j = j + 1
        Next
    End Sub

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

Discussions similaires

  1. Inserer le double quote dans une chaine de requete
    Par schwinny dans le forum VBA Access
    Réponses: 14
    Dernier message: 04/03/2008, 15h00
  2. Quote dans une requete...
    Par Isildur dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/06/2006, 10h57
  3. [VB]probleme double quote dans une ressource de type string
    Par JulienCEA dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/02/2006, 12h38
  4. quotes dans une variable
    Par requiemforadream dans le forum ASP
    Réponses: 3
    Dernier message: 09/05/2005, 09h55

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