VBA - affecter une valeur à une variable dynamiquement
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

VBA - affecter une valeur à une variable dynamiquement



  1. #1
    Stan_94

    VBA - affecter une valeur à une variable dynamiquement


    ------

    Bonjour,
    j'ai une petite migraine avec VBA.
    Je pensais toruver facilement , mais non, pas moyen !
    Bref, je voudrais remplir une variable dans le nom est contenu dans une autre variable...
    (Quoi, ce n'est pas clair ? )
    Un exemple sera plus parlant...

    Code:
      Dim monChamp As String
      Dim maVariable As String
    
      ...
      monChamp = "maVariable"   'Dans la réalité ça viendra d'une base de donnée
    
      'Que mettre pour que maVariable prenne la valeur "toto" par exemple en ne manipulant que monChamp ?
    J'ajoute que j'ai essayé "CallByName" mais c'est pour des appels de fonction par des variables...
    Note : Je travaille en général sur l'ABAP (dans le progiciel SAP) et on sais faire ça facilement via des field-symbols, sortent de pointeurs. Mais là en VBA... je ne vois pas !!!! Je vais creuser sur les pointeurs si ça existe en VBA...

    Merci, au moins pour la lecture si ce n'est pour une solution !

    -----

  2. #2
    Bluedeep

    Re : VBA - affecter une valeur à une variable dynamiquement

    Bonjour

    Il n'existe pas de système de Reflection en VBA comme il en existe en VB.Net, mais il y a le mot clef Evaluate qui doit permettre de faire cela. (sous toute réserve,car je ne connais pas VBA).

  3. #3
    Stan_94

    Re : VBA - affecter une valeur à une variable dynamiquement

    Merci Bluedeep,
    ca me donne une piste, même si pour l'instant je m'y casse les dents.
    En effet en codant ça :

    Code:
    monChamps = "maVariable"
    maChaine = monChamps & " = " & """toto"""
    Evaluate (maChaine)
    maChaine contient "maVariable = "toto""
    pourtant maVariable reste vide.

    Je crois que je prend cette fonction à l'envers. J'ai mon neurone en surchauffe à cette heure
    Je creuse, je creuse... en espérant que ce ne soit pas ma tombe

  4. #4
    Stan_94

    Re : VBA - affecter une valeur à une variable dynamiquement

    Bonjour,

    finalement un collègue à donner une solution, en utilisant l'instruction CallByName.
    Mais il faut que les variables soient des attributs d'une classe, ce qui dans mon cas n'est pas un problème.

  5. A voir en vidéo sur Futura
  6. #5
    Chanur

    Re : VBA - affecter une valeur à une variable dynamiquement

    Bonjour,
    Citation Envoyé par Stan_94 Voir le message
    finalement un collègue à donner une solution, en utilisant l'instruction CallByName.
    Il serait intéressant que tu donnes la solution, ça peut servir aux futurs lecteurs de ce fil.
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  7. #6
    Stan_94

    Re : VBA - affecter une valeur à une variable dynamiquement

    Ah ben oui, c'est pas bête ça !

    Donc l'astuce est de replacer les variables utlisées dans les modules par des attributs de classe :

    Je créé un module de classe nommé List :
    Code:
    Public maVariable As String
    puis dans le module, je crée une instance de liste pour pouvoir la passer en paramètre du CallByName :
    Code:
    Dim maListe As New List
    
    Sub test()
    
        maListe.maVariable = "Debut du test"
        MsgBox maListe.maVariable
        CallByName maListe, "maVariable", VbLet, "Fin"
        MsgBox maListe.maVariable
    
    End Sub

Discussions similaires

  1. Valeur résiduelle de condensateur variable ?
    Par fabemol dans le forum Électronique
    Réponses: 75
    Dernier message: 18/04/2014, 16h16
  2. copier une valeur d'un fichier à une variable
    Par invite8b421ec7 dans le forum Programmation et langages, Algorithmique
    Réponses: 13
    Dernier message: 26/02/2012, 17h38
  3. afficher la valeur d'une variable sur un lcd
    Par kevin8z dans le forum Électronique
    Réponses: 12
    Dernier message: 19/01/2011, 18h48
  4. PIC F88 : Pb valeur variable (assembleur)
    Par Monpseudo dans le forum Électronique
    Réponses: 7
    Dernier message: 15/07/2009, 12h45
  5. Afficher la valeur d'une variable sur un lcd
    Par invitea5fe4634 dans le forum Électronique
    Réponses: 5
    Dernier message: 27/03/2008, 18h02