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

VB 6 et antérieur Discussion :

Difficulté avec "for each" et tableau dynamique


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Par défaut Difficulté avec "for each" et tableau dynamique
    Bonjour,
    je fais tourner un for each et je voudrais recupérer les valeurs retourné ensuite les affecté à un tableau dynamique en fonction du nombre d'element retourner,mais j'ais du mal
    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
    Private Sub Command1_Click()
      Dim toto(?, 1) As String  
     
    End Sub
     
     
    Private Sub Message1_Click()
    For Each elem In ELEMENT1
          toto(?,?) = elem.Contenu 
    Next 
     
    toto(?,?)= elem.Contenu (1)
    toto(?,?)= elem.Contenu (2)
     
    Msgbox (toto(?,1))
    end sub
    Merci d'avance pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Est-ce que tu sais ce que c'est que le scope de déclaration d'une variable ?

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Par défaut
    Merci pour ta rapidité
    non je ne sais pas du tout, tu penses que je devrais chercher par la?

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Oui =)

    Visiblement tu es un peu pressé, il semble que tu essayes de mettre les murs d'une maison n'ayant même pas de sol.

  5. #5
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Par défaut
    En fait j'essais de recupérer des valeurs retournées par le "for each" dans un tablau dynamique et ensuite les affichées dans un Msgbox.
    devrais-je utilisé autre chose qu"un tableau?
    une listbox?

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Non, ça me parait plausible ..

    Mais il faut déclarer le tableau avant. (notamment)

  7. #7
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Par défaut
    je ne savais pas comment l'initialiser etant donné que le nombre de ligne dependrait du nomre d'element dans le for each,
    en tout cas j'aurais besoin de 2 colonnes "Nom et reference"
    c'est pour ca que j'ais placé des points d'interrogation

  8. #8
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    le for each ne te permettra pas d'avoir le numero d'element
    mieux vaut utiliser un index pour boucler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim lPnt as Long
    ReDim Toto(Elemen1.Count,1)
    For lPnt=1 to Elemen1.Count
      toto(lPnt,0) = elem.Contenu(1)
      toto(lPnt,2) = elem.Contenu(2) 
    Next

  9. #9
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Par défaut
    Merci Delbeke , ca à l'air de ressembler à ce que je recherche ,je travail
    sur ce bout de code et je te tiens au courant
    merci encors

  10. #10
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Par défaut
    décidement j'ais du mal,j'arrive pas a m'y faire aveec le vb

    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
     
    Private Sub Command1_Click()
     
    Dim lPnt As Long
     
    ReDim toto(ELEMENT1.Count, 1)
     
    For Each elem In ELEMENT1
        For lPnt = 1 To ELEMENT1.Count
          toto(lPnt, 0) = elem.contenu1
          toto(lPnt, 2) = elem.contenu2
        Next
    Next
     
    MsgBox toto
     
    End Sub
     
    merci de ton aide

  11. #11
    Membre chevronné Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Par défaut
    Bonjour,

    N'ayant pas la réponse à ta question, je me demande tout de même si un "MsgBox" est le mieux pour afficher ton tableau...


    ~~ La Praline ~~
    ... un choco qui essai de faire avancer le Schmilblick...

  12. #12
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Par défaut
    je dis msgbox, mais ce que je veux c'est stoqué le contenu du tableau dans un label par exemple

  13. #13
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Par défaut
    mais comment faire pour retourner le contenu du tableau "toto" dans un label?

    j'ais essayé ca ca marche pas

  14. #14
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    peut être qu'une grille est plus adaptée pour afficher un tableau à 2 éléments ?

  15. #15
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Par défaut
    je vais essayé d'etre un peu plus clair.

    ce que je voudrais faire c'est :

    -initialiser un tableau (toto) vide

    -faire un "for each" ou je rentrerais les valeurs au fur et à mesur dans le tableau (toto)

    -ensuite afficher le resultat du tableau dans un label si possible
    l'un en dessous de l'autre

    pourriez vous m'aider svp , merci,

    pour l'instant j'en suis à là:

    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
     
    Private Sub Command1_Click()
    Dim elem As ELEMENT
    Dim lPnt As Long
     
    ReDim toto(ELEM_COLLECTION.Count, 1)
    'recup une collection
    For Each elem In ELEM_COLLECTION
        For lPnt = 1 To ELEM_COLLECTION.Count
     
          toto(lPnt, 0) = elem1.nom
          toto(lPnt, 2) = elem2.prenom
        Next
    Next
     
    For lPnt = 1 To ELEM_COLLECTION.Count
          Label1.Caption = toto(lPnt, 0)
        Next
     
     
    End Sub
    Mais il ya surement bcp d'erreur et je rame depuis deux jours, Merci

  16. #16
    Membre chevronné Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Par défaut
    Citation Envoyé par OhMonBato
    peut être qu'une grille est plus adaptée pour afficher un tableau à 2 éléments ?

    ...

    ~~ La Praline ~~
    ... un choco "..."

  17. #17
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Explique nous déjà que sont les variables ELEM et ELEM_COLLECTION, elles sont déclarées où, comment ?

    Sais tu ce à quoi sert à For... Each ?

    Comment entres tu les valeurs ? C'est l'utilisateur qui doit entrer les valeurs ?

    Pourquoi s'obstiner sur un label qui est loin d'être le contrôle le plus adapté pour afficher un tableau de valeurs ?

    Donc là pour moi, c'est un peu flou pour pouvoir commencer à t'aider, va falloir faire un peu le ménage la dedans

  18. #18
    Membre chevronné Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Par défaut
    salut,

    Pour le "for each" => faq, tutos... c'est bien expliquer... au cas où

    ~~ La Praline ~~
    ... un choco tutophile !!

  19. #19
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    J'ai peut etre mal compris ce qu'il veut faire mais le For Each ne me semble pas du tout adapté.

  20. #20
    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
    Tu ne peux pas faire une boucle For Each sur des éléments qui n'existent pas encore. Sauf, bien sur, si ton tableau est initialisé - même vide - avec des dimensions fixes. Pour un tableau dynamique, c'est pas possible.

    For Each est bien expliqué dans l'aide MSDN. Si t'as pas les CD, c'est disponible sur DVP. Cherche dans Outils VB. T'auras pas à chercher longtemps, c'est le premier lien de la liste!

    Pour l'affichage du contenu, je suis d'accord avec les potes, une grille sera plus appropriée.

Discussions similaires

  1. [Débutant] Probleme pour pinguer une liste de machine avec un for each
    Par mouztik dans le forum VB.NET
    Réponses: 4
    Dernier message: 15/08/2014, 13h14
  2. Probleme bouton afficher/masquer avec boucle for-each
    Par CouicCouic dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 25/11/2011, 08h48
  3. [XL-2007] double condition (avec des for each)
    Par FloFlosu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/02/2011, 11h32
  4. Réponses: 4
    Dernier message: 22/09/2009, 08h04

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