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 :

Instruction dynamique et son application


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Par défaut Instruction dynamique et son application
    Bonjour,

    J'aimerais savoir si on peut générer des instructions dynamiques en VBA.

    J'ai un tableau qui me dit que

    Indicateur ¦ Formule
    GPS ¦ GPSRATE * VOLUME


    J'aimerais savoir si VBA peut lire la colonne Formule pour générer l'instruction suivante lors du calcul de l'indicateur GPS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value = grid.getVal("GPSRATE", colrel) * grid.getVal("VOLUME", colrel)
    Bref, j'ai besoin de reconnaitre les "acteurs" de la formule (qui peuvent être plus de deux) et le signe arithmétique entre eux. Mes formules restent simples, c'est rarement plus de deux acteurs sauf lors de sommes. Donc pas de priorité arithmétique en perspective.

    Si c'est possible, comment ensuite exécuter cette instruction dynamique ?

    Mille mercis
    Laurent

  2. #2
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Je ne suis pas certaine d'avoir bien compris. Mais si tu veux récupérer des parties séparées de la formule d'une cellule écrite dans la cellule (qui est une valeur de string, en fait), tu peux séparer tous ces éléments avec la fonction Split et les récupérer dans un tableau. Chaque mot de la phrase qui composent ta formule se trouvent dans un indice de tableau.

    En supposant que les formules sont dans la colonne B et que, pour cet exemple, la formule cherchée est sur la ligne 4...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim strTabFormule() As String
    Dim strFormule As String
    strTabFormule = Split(Range("B4").Value)
    En supposant que tes formules dans les cellules de ton tableau sont toujours composés de deux opérandes et d'un opérateur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strFormule = "grid.getVal(" & strTabFormule(0) & ", colrel)" & _
        strTabFormule(1) & "grid.getVal(" & strTabFormule(2) & ", colrel)"
    Et en ajoutant une référence à Microsoft Scripting Runtime dans ton projet VBA (menu Outils, Référence de l'éditeur VBA).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Value = Eval(strFormule)
    Ceci dit, j'ai VB6 installé sur ma machine. Alors, je ne sais pas (depuis le temps) si Microsoft Scripting Runtime est venu avec VB6, avec Office ou s'il est présent naturellement avec Windows (éventualité qui me surprendrait fort).

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par zazaraignée
    Je ne suis pas certaine d'avoir bien compris.
    Moi non plus mais tu peux jeter un oeil à la méthode Evaluate.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Par défaut Compteur les opérateurs
    Bonjour,

    Vous avez parfaitement compris mon problème et très bien répondu.

    Mille mercis
    Laurent

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

Discussions similaires

  1. Comment faire un splash screen pour son application?
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/04/2007, 14h28
  2. Iconiser son application
    Par lehic dans le forum Langage
    Réponses: 4
    Dernier message: 21/12/2005, 14h31
  3. Réponses: 20
    Dernier message: 06/12/2005, 15h19
  4. Protection de son application
    Par FFF dans le forum Sécurité
    Réponses: 14
    Dernier message: 22/11/2005, 14h55
  5. Comment protéger efficacement son application ?
    Par RamDevTeam dans le forum EDI
    Réponses: 3
    Dernier message: 15/11/2005, 09h41

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