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 :

UN calcul DEUX résultats différents [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 665
    Points : 5 804
    Points
    5 804
    Par défaut UN calcul DEUX résultats différents
    Bonjour,

    J'ai besoin d'aide je crois que je deviens fou.
    Je fais un calcul dans une case excel tout se passe bien, il me donne le bon résultat.
    Je fais le MEME calcul dans une maccro et là c'est le drame
    la formule dans excel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =1-(var1="")+1-(var2="")+1-(var3="")+1
    et le code vba:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    test = 1 - (var1= "") + 1 - (var2= "") + 1 - (var3= "") + 1
    MsgBox (test)
    petite précision au cas où, les cellules où sont les valeurs des variables sont nommées et c'est le nom que j'utilise dans les calculs

    Suivant que mes variables soit vide ou pas j'obtient un résultat entre 5 et 7 ...
    Si quelqu'un comprend la logique je veux bien une explication

    Merci d'avance

  2. #2
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    Je fais le MEME calcul dans une maccro et là c'est le drame
    Tu pourrais être plus explicite sur le résultat obtenu ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test = 1 - (var1= "") + 1 - (var2= "") + 1 - (var3= "") + 1
    Quel est le type de tes variables test et varX ?

    Citation Envoyé par halaster08 Voir le message
    petite précision au cas où, les cellules où sont les valeurs des variables sont nommées et c'est le nom que j'utilise dans les calculs
    Une question dont la réponse me semble évidente mais il vaut mieux la poser : dans ton code VBA, var1, var2 et var3 sont bien des variables VBA ?

  3. #3
    Membre actif Avatar de Pellouaille
    Homme Profil pro
    STF (Sans Travail Fixe)
    Inscrit en
    Novembre 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : STF (Sans Travail Fixe)
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 89
    Points : 204
    Points
    204
    Par défaut
    Hello halaster08,

    Il n'y aurait pas une petite confusion entre Var1 -> la variable que tu as créée et VAR1 -> la cellule juste à côté de VAQ1?

    Cordialement,

    Pellouaille

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 665
    Points : 5 804
    Points
    5 804
    Par défaut
    Non pas de confusion. j'ai changer les noms en copiant le code.
    Test renvoie un entier, je compte le nombre de variable non vide +1
    Les autres viariables sont du texte
    par exemple si les 3 variables sont vides, excel caclcule 1 ce qui est normal et vba 7 ce qui l'es moins
    Et oui dans le code vba variables sont déclarée en vba et vont récupérer les valeurs de la bonne case du fichier excel.

  5. #5
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    En VBA, True est égal à -1.
    Passe par une fonction IIf(condition,1,0) pour faire ce calcul.

    Un conseil : additionner des choux et des carottes, c'est rarement une bonne idée. Il en va de même avec le mélange de valeurs logiques et numériques.

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 665
    Points : 5 804
    Points
    5 804
    Par défaut
    Ok si TRUE=-1, je comprend mieux, j'y avais même pas pensé tellement j'étais persudadé que true=1 et false=0 était quequechose d'universel.

    Peut être que c'est pas forcément une bonne idée mais c'est la seule que j'ai eue et j'ai besoin de compter le nombre de variables non vides, et le test sur excel marchait bien...

    Du coup si tu as une meilleure idée je suis preneur

    Et merci pour les réponses.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Salut.

    Si j'ai compris ton problème, tu peux essayer ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Result = -((Var1 <> "") + (Var2 <> "") + (Var3 <> ""))

  8. #8
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 665
    Points : 5 804
    Points
    5 804
    Par défaut
    Merci, je testerais lundi matin.

    edit: ça marche merci, problème résolu

  9. #9
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    Du coup si tu as une meilleure idée je suis preneur
    Voir mon message précédent :
    Citation Envoyé par Menhir Voir le message
    Passe par une fonction IIf(condition,1,0) pour faire ce calcul.
    Tu peux aussi utiliser la fonction Abs() pour avoir la valeur absolue ce qui t'affranchira du -.
    Il y a sans doute d'autres solutions encore.

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

Discussions similaires

  1. Macro qui provoque deux résultats différents
    Par ebgérard dans le forum Programmation (La)TeX avancée
    Réponses: 4
    Dernier message: 08/12/2014, 20h14
  2. Réponses: 13
    Dernier message: 01/06/2011, 16h58
  3. [float] Calcul et résultat différent
    Par Kerod dans le forum C++
    Réponses: 22
    Dernier message: 16/03/2008, 17h12
  4. Réponses: 6
    Dernier message: 24/05/2007, 14h40
  5. Réponses: 15
    Dernier message: 21/01/2005, 04h25

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