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 :

Comment affecter le contenu d'une Cell a une variable contenue dans une autre cell


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Points : 52
    Points
    52
    Par défaut Comment affecter le contenu d'une Cell a une variable contenue dans une autre cell
    Bonjour,

    Je voudrais savoir comment affecter le contenu d'une cellule par le contenu d'une autre cellule.
    example:
    A(1)= toto
    A(3)=24

    Je voudrais affecter a toto la valeur 24, de tel sorte que si je display la variable toto il me dise 24.
    J'ai essaye avec la commande INDIRECT, mais je n'y suis pas arrive

    Merci de m'aider

  2. #2
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Bonsoir,

    Crée le nom "Toto" (Menu Insertion, Nom, Définir... ou, si tu utilises Excel 2007, Formules puis Gestionnaire de noms), et affecte-lui la valeur 24.
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Merci ,

    Ce n'est pas ce que je cherche a faire.
    En fait j'ai le tableau suivant

    F G
    6: FSBaseAdress 0000
    7: CDLocationBasePointer 0200
    8: RDLocationBasePointer 0100

    Ce tableau peut evoluer, en fait ce sont des pointeurs d'adresses et dans mon code VBA je me sers des variables qui sont en F6,F7 et F8 et je veux que ces variables contiennent les valeures qui sont en G.

    Est-ce possible ? et si oui comment.

    J'ai bien essaye avec la commande INDIRECT, mais celle-ci ne fonctionne pas (pas reconnue sous VBA avec Excell 2003 SP2) et je ne sais pas pourquoi.

    Merci de m'aider

  4. #4
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Re,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Variables()
    Dim FS As String, CD As String, RD As String
        FS = Range("G6")
        CD = Range("G7")
        RD = Range("G8")
    End Sub
    Mais je ne comprends pas où se trouve l’indirection.
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Je crois que je me suis mal exprime. Ce n'est pas FS, ni CD ni RD que je veux affecter avec les valeures de G6,G7 et G8. Mais ce sont les variables qui sont dans F6, F7 et F8 soit:
    FSBaseAdress = 000
    CDLocationBasePointer=0200
    ..etc
    Je veux pouvoir utilier le contenu des cells en F6,F7 et F8 comme variables et leur affecter les valeures de G6,G7 et G8.

    C'est pour cela que je pqrle d'indirection. De plus, je ne sais pas pourquoi ma fonction INDIRECT n'est pas reconnue en vba chez moi ?

  6. #6
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Dans l’exemple de code, j'ai utilisé FS, CD et RD comme nom de variables. Si tu as déjà des variables, utilise-les à la place :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    VSub Variables()
    Dim FS As String, CD As String, RD As String
        FSBaseAdress = Range("G6")
        CDLocationBasePointer = Range("G7")
        RDLocationBasePointer Range("G8")
    End Sub
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Oui ! c'est vrai mais ce n'est pas ce que je veux faire. Je sais affecter le contenu des cellules a des variables. Mais en fait je veux extraire le contenu d'une cellule ici F6 et en faire une variable. Les variable ainsi que les nom peuvent changer donc si today je l'appelle FSBaseAdress je peux aussi en changer le nom, par contre sa position en F6 ne changera pas. C'est pourquoi je veux extraire le contenu de F6 et lui affecter le contenu de G6 et le tout me donnera la variable FSBaseAdress=0000 ... etc.
    Ext-ce que la commande INDIRECT existe sous VBA ?

  8. #8
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Ce que je ne comprends pas est cette phrase :

    Citation Envoyé par gilles06 Voir le message
    Mais ce sont les variables qui sont dans F6, F7 et F8
    Tu peux inscrire le nom de variables dans des cellules, mais cela ne dispense pas de les définir dans VBA : il n'y a donc pas de variables dans les cellules, mais de simples chaînes de caractères.

    Ou alors on n’a pas forcément besoin de VBA, et on en revient à ma première option, qui est de définir des noms :

    Celui en F6 pour le contenu de la cellule G6
    ...

    Et dans les cellules, on peut alors utiliser ces 3 noms comme on le ferait en VBA avec des variables.
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Desole, mais je ne comprends pas.
    Je veux utiliser le contenu de F6 comme variable et lui affecter le contenu de G6, de tel facon a avoir ensuite que le contenu de F6 soit egal au contenu de G6.

  10. #10
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Désolé nos 2 messages précédents (ceux de 17h01 et 17h05, heure française) se sont croisés.

    Je ne vois aucun moyen d’utiliser une indirection pour nommer une variable.

    Si F6 est invariant, la seule chose qui se rapproche de ton souhait, qui me vienne à l’esprit est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Variable()
    Dim F6(1) As String
        F6(0) = Range("F6")
        F6(1) = Range("G6")
    End Sub
    F6(0) te permet de retrouver le contenu de F6, le nom que tu aurais voulu donner à la variable et F6(1) renvoie la valeur en G6.

    A défaut d’une variable classique, tu as un tableau avec le nom et la valeur.
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 92
    Points : 52
    Points
    52
    Par défaut
    Merci de ton aide.
    Perso je n'y suis pas arrive par cette methode. Par contre j'ai pu y arriver autrement.

    Peux-tu me dire pourquoi la fonction INDIRECT ne fonctionne pas chez moi ? il ne la reconnais pas.
    J'utilise Excell/VBA 2003

    Merci

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

Discussions similaires

  1. [MySQL] recuperer une valeur dans une liste deroulante pour l'utiliser dans une seconde liste
    Par tortue_22 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 12/05/2010, 11h50
  2. Réponses: 2
    Dernier message: 29/09/2009, 15h33
  3. Réponses: 8
    Dernier message: 12/08/2009, 11h32
  4. Réponses: 4
    Dernier message: 04/07/2008, 10h34
  5. Réponses: 1
    Dernier message: 22/06/2008, 22h47

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