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 :

Convertir une variable en instruction


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien
    Inscrit en
    Octobre 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Octobre 2021
    Messages : 3
    Par défaut Convertir une variable en instruction
    Bonjour à tous,

    Voila quelques jours que je galère à réaliser quelque chose qui me semble pourtant si simple à la base...
    J'ai un très gros fichier de références à gérer. Chaque référence est applicable ou non à un projet en fonction d'une formule (parfois simple, souvent complexe). Cette formule étant composée de fonctions logiques type AND, NOT, OR... j’aurais aimé calculer le booléen de sortie en fonction du filtre projet sélectionné...

    Exemple:
    Besoin 01 :
    - formule d'applicabilité => (Banane OR Raisin OR Carrotte) AND Poire AND (Pomme OR Tomate) AND NOT Fraise AND NOT Poireau
    - formule binaire => (0 OR 1 OR 0) AND 1 AND (1 OR 0) AND NOT 0 AND NOT 0

    Mon besoin c'est de calculer la sortie de cette formule.
    Quand je rentre à la main cette formule en tant qu’instruction dans vba ça me donne exactement ce que je souhaite le problème c'est que la formule binaire est de type "string". Des références j'en ai des milliers.
    Pour un besoin, la formule d'applicabilité est fixe, la formule binaire résulte du passage dans une matrice et donc varie en fonction d'un inducteur "projet".

    J'ai tenté de convertir la chaîne de caractères (formule binaire) en remplaçant les AND et les NOT et les OR par des opérateurs mathématiques mais ça ne marche pas dans tous les cas. (des cas complexes genre doubles parenthèses, AND NOT...)
    Existe t-il une technique pour convertir une variable de type string en instruction? En lisant certains post je crois comprendre que le codage dynamique est pas simple et j'ai peur d’être au delà de mes maigres connaissances.

    d'avance merci pour votre aide.

    manu

  2. #2
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 575
    Par défaut
    bonjour,
    désolé je n'es rien compris!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print evaluate("OR(0, 1)")

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien
    Inscrit en
    Octobre 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Octobre 2021
    Messages : 3
    Par défaut
    salut,

    merci pour la réponse.
    La formule à calculer est de la forme : (0 OR 1 OR 0) AND 1 AND (1 OR 0) AND NOT 0 AND NOT 0

    Ce n'est pas une forme assimilable par excel en tant que formule. La fonction Evaluate((0 OR 1 OR 0) AND 1 AND (1 OR 0) AND NOT 0 AND NOT 0) ne marche pas
    Il faudrait remanier la chaîne pour la convertir en formule mais j'ai peur de devoir gérer trop cas spécifiques...

    En revanche, l'instruction test = (0 OR 1 OR 0) AND 1 AND (1 OR 0) AND NOT 0 AND NOT 0) directement rentrée sous vba donne le bon résultat

    Je ne sais pas comment faire de mes variables du type (0 OR 1 OR 0) AND 1 AND (1 OR 0) AND NOT 0 AND NOT 0 des instructions.

    cordialement,

    manu

  4. #4
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 575
    Par défaut
    Citation Envoyé par manu_tella Voir le message
    En revanche, l'instruction test = (0 OR 1 OR 0) AND 1 AND (1 OR 0) AND NOT 0 AND NOT 0) directement rentrée sous vba donne le bon résultat
    Certainement mais en soit l'équation n'a pas de sens!

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien
    Inscrit en
    Octobre 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Octobre 2021
    Messages : 3
    Par défaut
    Certainement mais en soit l'équation n'a pas de sens!
    Vu comme ça non mais pour mon usage si

    manu

Discussions similaires

  1. [PHP-JS] Convertir une variable javascript en php
    Par roxxxy dans le forum Langage
    Réponses: 14
    Dernier message: 01/03/2007, 12h12
  2. convertir une variable de type String en Number
    Par lilbrother974 dans le forum Flash
    Réponses: 13
    Dernier message: 06/09/2006, 08h28
  3. Comment convertir une variable string en double?
    Par quentinoux dans le forum C++
    Réponses: 12
    Dernier message: 31/07/2006, 10h46
  4. convertir une variable texte en variable date
    Par tafamilk dans le forum ASP
    Réponses: 2
    Dernier message: 12/08/2005, 01h01
  5. Réponses: 6
    Dernier message: 14/02/2004, 14h01

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