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 :

creer une variable dynamiquement


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Par défaut creer une variable dynamiquement
    Bonjour!!

    J'ai une question sur les variants..

    J'utilise plusieurs variant comme tableaux pour stocker des listes de string
    (chaque variant <=> une liste)

    Le truc c'est que j'aimerai creer dynamiquement ces variants, au cour du déroulement de mon programme (donc pas de declaration initiale)

    De plus j'aimerai pouvoir donner un nom lui aussi défini dynamiquement a chaque variant créé..

    Est il possible de le faire ?

    Merci
    yedid

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je te conseille la lecture de ce tuto de Silkyroad.

    Il t'explique comment écrire du code à partir de code, tu pourrais (en théorie) créer des variables et tableaux.

    Starec

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Par défaut
    Merci bcp!
    Je vais essayer vbVariant qui me semble pas mal..
    je vous tiens au courant

  4. #4
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Par défaut
    Nan dsl,

    Il ne fait pas ce que j'attendais de lui..
    Dans ce tuto, il te parle d'une creation dynamique d'objet present dans les useforms, de module meme, mais pas de variant!! :-(
    T'aurai une autre idée?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Re

    Dans un module tu peux écrire du code, ce tuto t'explique comment écrire du code dans un module, donc tu peux écrire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim maVariable as Variant
    Starec

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    gérer des variables de facon dynamique c'est chercher une solution compliquée à un problème simple

    la sub suivante montre comment utiliser les deux structures dynamiques
    de vba (tableau collection)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    Sub dyna()
    Dim unvariant As Variant
    Dim ligne As Integer
    Dim colonne As Integer
    Dim base As Integer
    Dim macoll As New Collection
    Do
    If MsgBox(prompt:="encore ?", Buttons:=vbYesNo) = 7 Then Exit Do
    base = base + 1
    ligne = InputBox("nbligne")
    ReDim unvariant(ligne, 2)
    For ligne = 1 To ligne
    For colonne = 1 To 2
    unvariant(ligne, colonne) = InputBox("valeur?")
    Next colonne
    Next ligne
    macoll.Add Item:=unvariant, key:="nom" & base
    Loop
    For colonne = 1 To macoll.Count
    MsgBox ("nom" & colonne)
    unvariant = macoll("nom" & colonne)
    For ligne = 1 To UBound(unvariant)
    MsgBox (unvariant(ligne, 1) & " " & unvariant(ligne, 2))
    Next ligne
    Next colonne
    End Sub
    ici le nom n'est pas totalement programmée mais
    il suffit de faire key:=inputbox("entrez un nom") et de gérer les erreurs

  7. #7
    Invité
    Invité(e)
    Par défaut

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'en avais un autre, alors je ne vais pas me priver
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Collection_Créer()
     Dim MaColect  As New Collection
     Dim NimporteQuoi 'variable "dynamique"
        ' Rempli la collection
        MaColect.Add "ton problème ?", "Quatre"
        MaColect.Add "Et alors ? ", "Un"
        MaColect.Add "quoi ", "trois"
        MaColect.Add "C'est ", "Deux"
        'Affichage
        Debug.Print MaColect("Un") & MaColect("Deux") & MaColect("trois") & MaColect("Quatre")
        MsgBox MaColect("Un") & MaColect("Deux") & MaColect("trois") & MaColect("Quatre")
        NimporteQuoi = MaColect("Deux") 'ou MaColect("Un") ou MaColect("Quatre")... etc.
     
    End Sub

Discussions similaires

  1. Comment creer des variables dynamiques ?
    Par lonyc dans le forum ASP
    Réponses: 4
    Dernier message: 11/12/2006, 15h54
  2. Réponses: 5
    Dernier message: 10/07/2006, 15h02
  3. Réponses: 4
    Dernier message: 19/05/2006, 14h30
  4. Enregistrement d'une variable dynamique dans un fichier
    Par zarbydigital dans le forum Langage
    Réponses: 13
    Dernier message: 24/12/2005, 21h28
  5. Compiler et créer une librairie dynamique en C
    Par fidififouille dans le forum Linux
    Réponses: 3
    Dernier message: 30/11/2004, 16h36

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