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 :

Utilisation tableau en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Par défaut Utilisation tableau en VBA
    Bonjour,
    J'espère que vous pourrez m'aider sur ce point :

    Je voudrais créer la procédure suivante :

    Je procède a un nombre indéterminé de calculs (entre 1 et 50) à travers une boucle & je voudrais stocker au fur et à mesure (à chaque fin de boucle) les résultats de ses calculs, afin de les retranscrire au final dans une seul cellule avec un séparateur quelconque.

    Quelqu'un peut-il me guider dans la création de la partie "stockage de données" ?

    Merci d'avance ! (j'espère que mon message est assez clair)

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Par défaut
    Ca ne fait pas longtemps que je lm'ocupe de tableau, donc il y a surement moyen de faire mieux, mais une boucle de ce type fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim NomTableau() As Variant
     
    For i = 1 To x
    ReDim Preserve NomTableau(i)
    NomTableau(i - 1) = "contenu"
    Next i
    "ReDim Preserve" permet de changer la taille du tableau sans perdre ce qu'on a déja mit dedans
    "NomTableau(n°)=" permet de mettre un truc dans la case n°-1 (le tableau commence a l'emplacement 0)

    et pour apprendre ca, j'ai été voir sur le tuto http://silkyroad.developpez.com/vba/tableaux/

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Par défaut
    Merci çà à l'air de fonctionner. Je n'arrive pas encore à récupérer au final les données mais je vais regarder le tutorial !!! Merci ! ! !

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Par défaut
    Pour récuperer les données, tu fais l'inverses, tu mets dans une variable le contenu de ton tableau

    Si tu as encore ton nombre de boucle en stock, tu fais un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    a= NomTableau(0)
    for i = 1 to x-1
    a = a & "/" & NomTableau(i)
    next i
    on traite la premiere case avant la boucle pour éviter qu'elle ai un séparateur aussi et du coup on boucle une fois de moins (x-1 au lieu de x)

    Si tu n'as plus ton nombre de boucle, alors regarde dans le tuto, il y a une comande pour trouver la longueur d'un tableau

    question subisidaire, je me suis faite avoir par ca la semaine derniere, tu as besoin de retourner chercher les données par la suite?
    Si non, est-ce que tu as besoin d'un tableau? tu pourrais directement composer le résultat sur le meme principe (a la fin de chaque boucle, tu ajoutes a ta variable un séparateur et le nouveau résultat

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Par défaut
    non effectivement je n'ai pas spécialement besoin d'un tableau ... au contraire ! Mais je ne vois pas comment ajouter à une variable une virgule puis une autre variable et ainsi de suite :-(

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Par défaut
    Ca ne sera pas perdu d'avoir trouvé comment les tableaux marchent

    Ce qu'on allait faire avec le tableau, c'est tout ranger dans le tableau et puis tout sortir pour le reranger dans une variable. Rien n'empeche de ranger directement dans la variable (par contre, le tableau serait bien si on doit revenir plusieurs fois aux données par la suite)

    Pour ta variable de résultat, tu as ta boucle qui a la fin de chaque boucle donne un résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For i = 1 To x
    blabla blabla tes calculs ici
     
    if i =1 then
    a = résultat
    else
    a = a & ", " & résultat
    end if
     
    Next i
    Imaginons que tu boucle 4 fois, et que tu as les résultats suivants
    1) 4e
    2) 52f
    3) 0g
    4) 13h

    la premiere fois, i = 1, donc a = résultat
    a = 4e
    la seconde fois, on fait a & ", " & résultat
    a = 4e, 52f
    la troisieme fois, on fait a & ", " & résultat
    a = 4e, 52f, 0g
    la quatrieme fois, on fait a & ", " & résultat
    a = 4e, 52f, 0g, 13h

Discussions similaires

  1. Connection ADOBD pour utiliser SQL en vba EXCEl
    Par chabagrou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/11/2007, 14h39
  2. je veux utiliser notepad via vba
    Par GTSPat dans le forum Général VBA
    Réponses: 3
    Dernier message: 23/11/2007, 12h58
  3. Réponses: 6
    Dernier message: 23/08/2007, 09h49
  4. [VBA et SQL] Requête SQL utilisant une variable VBA
    Par Altrensa dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 06/07/2007, 10h23
  5. [VBA-E] Comment créer un tableau sous vba excel
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/01/2007, 09h52

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