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 :

définir variable - un chiffre après la virgule


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 définir variable - un chiffre après la virgule
    Bonjour,

    J'ai un problème avec ma macro,
    Ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Private Sub Worksheet_ChangementB2(ByVal Target As Range)
        Dim KeyCells As Range
        Dim resultat As Single
     
        Set KeyCells = Range("B2")
         If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
        If Range("B1").Value <> "" Then
     
            If Range("B2").Value < Range("B1").Value - Range("B3").Value And Range("B2").Value <= 10 Then
                resultat = Range("B1").Value - Range("B2").Value - Range("B3").Value
               MsgBox ("il vous reste " & resultat & " jours")
     
     
            End If
            End If
           End If
    End Sub
    Private Sub Worksheet_ChangementB3(ByVal Target As Range)
     
        Dim KeyCells As Range
        Dim resultat As Single
     
        Set KeyCells = Range("B3")
         If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
        If Range("B1").Value <> "" Then
     
            If Range("B3").Value < Range("B1").Value - Range("B2").Value And Range("B3").Value <= 10 Then
                resultat = Range("B1").Value - Range("B2").Value - Range("B3").Value
               MsgBox ("il vous reste " & resultat & "  jours")
     
     
            End If
             End If
              End If
            End Sub
    devrait me permettre de générer un msg box pour me calculer l'écart de saisie (cf résultat dans le code)
    sauf que dans l'exemple que je vous donne, j'ai bien saisi dans ma B2 et B3 des valeurs correspondant au cumul de ma B1, donc je ne devrai pas avoir de msg box

    là j'ai un écart bizarre qui sort et je ne sais pas à quoi ca correspond

    est ce que c'est un problème du format de la variable?
    ou je dois définir les décimales de mon résultat?

    merci de votre aide
    Images attachées Images attachées  

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Il y a souvent des pertes de précisions lors des conversions décimales/binaires.
    Si 4 décimales te suffisent en précision, type tes variables en Currency (entier avec virgule fixe, donc sans perte)
    Sinon arrondi avec Round()

    eric

  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
    Peux tu me dire ca donne quoi sur le code?
    Arrondi a un chiffre apres la virgule

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Re,

    Ecrit Round dans ton code, fait F1 dessus et dis ce que tu ne comprends pas.

    eric

  5. #5
    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
    Bonjour,

    Comment définir l'arrondi de mon résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = Range("B1").Value - Range("B2").Value - Range("B3").Value
    dois je définir l'arrondi pour chaque cellule:
    Range (B1)
    Range (B2)
    Range (B3)

    ou définir l'arrondi pour le "resultat"

    Voici le fichier excel pour démo:

    Suite aux valeurs saisies dans ma B2 et B3, je ne dois pas avoir de Msg box, suite à ma condition et j'en ai pourtant un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("B2").Value < Range("B1").Value - Range("B3").Value And Range("B2").Value <= 10 Then
    Pourriez vous m'aider svp
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Il faut arrondir les résultats d'opérations.
    eric

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

Discussions similaires

  1. Limiter une variable à deux chiffres après la virgule
    Par Btba_med dans le forum Simulink
    Réponses: 2
    Dernier message: 04/02/2015, 13h45
  2. Réponses: 2
    Dernier message: 04/07/2012, 17h25
  3. [CS5] Arrondir une variable à 2 chiffres après la virgule (AS2) d
    Par davidlemp dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 17/04/2012, 23h12
  4. [variable]obetenir seulement 2 chiffres après la virgule
    Par nejisama8 dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/05/2007, 17h32
  5. Variable nombre : arrondir à 5 chiffres après la virgule
    Par micatmidog dans le forum Général Python
    Réponses: 7
    Dernier message: 21/12/2005, 10h03

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