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 :

test If sur une valeur en % [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2020
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2020
    Messages : 129
    Par défaut test If sur une valeur en %
    Bonjour le forum,
    J'ai fait le petit code tout simple si dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'test si somme des % de paiement = 100%
    If Range("t12").Value <> 1 Then
    MsgBox ("Le total des conditions de paiement est différent de 100%")
    Exit Sub
    End If
    En T12, j'ai une formule somme qui additionne plusieurs cellules portant des %.
    Mon objectif : si la somme de ces pourcentage est différente de 100% : message d'alerte et on sort.
    Quand je met 1 en T12 à la place de la formule (format "standard") et 1 dans mon code, ça marche nickel.
    Mais avec la formule, il considère toujours que l'on est <> de 1.
    j'ai essayé plusieurs format de cellule : standard, nombre, pourcentage. Et plusieurs conditions dans le code : 1, 100 ...sans succès.
    Pas le bon format? remplacer Value par autre chose?

    Merci de votre aide
    Benoit

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Chez moi, cela fonctionne parfaitement et le format de la cellule contenant les totaux est le même que les cellules référencées pour la somme soit Pourcentage
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre éprouvé
    Homme Profil pro
    Fortune teller
    Inscrit en
    Octobre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Fortune teller

    Informations forums :
    Inscription : Octobre 2007
    Messages : 110
    Par défaut Test if
    J'ai testé chez moi : ça fonctionne sans problème.
    Utilise ton MsgBox pour montrer la valeur de la cellule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox (Range("T12").Value)

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par BenoitL77 Voir le message
    Quand je met 1 en T12 à la place de la formule (format "standard") et 1 dans mon code, ça marche nickel.
    Mais avec la formule, il considère toujours que l'on est <> de 1.
    Essaye de mettre 100% (tapé manuelle dans la cellule avec un format de cellule pourcentage).
    Si ça fonctionne, c'est que le problème ne vient pas du code mais de la formule.

    Il faut faire une différence entre la valeur affichée et la valeur dans la cellule.
    Par exemple, si ta formule renvoie 99,99% et que tu as un format "0%" arrondissant le pourcentage à l'entier le plus proche, ta cellule affichera 100% mais ne sera pas égale à 100%.

    Essaye de mettre ça dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Round(Range("T12").Value, 2) <> 1 Then
    Si ça fonctionne, c'est qu'il s'agit bien d'un problème d'arrondi.

    Cela dit, à ta place, je mettrais plutôt l'arrondi dans la formule Excel plutôt que dans le code VBA.

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2020
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2020
    Messages : 129
    Par défaut
    A force de tester vos pistes et de bidouiller, j'ai fini par mettre le 1 entre "" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Range("t12").Value <> "1" Then
    MsgBox ("Le total des conditions de paiement est différent de 100%")
    Exit Sub
    End If
    Et ça marche !.

    Merci à tous et bon après midi
    Benoit

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Essaye de mettre 100% (tapé manuelle dans la cellule avec un format de cellule pourcentage).
    Si ça fonctionne, c'est que le problème ne vient pas du code mais de la formule.
    Citation Envoyé par BenoitL77 Voir le message
    A force de tester vos pistes et de bidouiller, j'ai fini par mettre le 1 entre ""
    Ça confirme l'hypothèse de Menhir (), le problème ne vient pas du code mais de la formule (que tu n'est pas détaillé) : son résultat est un texte au lieu d'un nombre !

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

Discussions similaires

  1. [XL-2013] Tests multiples sur une plage de valeurs
    Par FMDCC dans le forum Excel
    Réponses: 3
    Dernier message: 17/08/2017, 10h37
  2. Test sur une valeur recupérée par un GET
    Par la_lvlouche dans le forum Langage
    Réponses: 6
    Dernier message: 25/02/2011, 10h03
  3. [1.x] test sur une valeur du widget
    Par Ontolingua dans le forum Symfony
    Réponses: 6
    Dernier message: 22/10/2010, 09h40
  4. [DEBUTANT] test sur une valeur
    Par eclipse012 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/02/2007, 09h52
  5. [XSL]appliquer la fonction substring sur une valeur récupéré
    Par totoranky dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 22/02/2006, 17h21

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