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 :

remplir un tableau avec une boucle [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 352
    Points : 182
    Points
    182
    Par défaut remplir un tableau avec une boucle
    Bonjour,

    J'aimerais remplir un tableau (tableau_machine) en fonction d'un autre (tableauinit) grâce a une boucle,
    il va parcourir la premiere colonne de mon tableau "tableauinit" pour chercher les valeurs qui correspondrait à
    et a chaque fois qu'il trouvera cette valeur il va remplir mon tableau tableau_machine progressivement en recopiant cette valeur trouvée

    je pense que j'utilise la mauvaise boucle car ça ne me le rempli pas convenablement.

    voici le bout de code que j'essaye d'adapter pour le remplissage de mon tableau :
    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
        For i = 1 To b 'on parcourt ici le tableau à une dimension a(i) qui va jusqu’à b
           val_job = a(i) 'ici on affecte à la variable val_job la première valeur trouvée dans le tableau a(i), maintenant on sait la valeur de 'val_job
        ------------------c est ici que les choses se compliquent pour moi---------------------------
          For oper = 1 To tot_noper  'je commence avec oper =1 jusqu'à 7 (tot_noper)
           For k = 0 To UBound(tableauinit, 1)  'je lui dit qu'il va parcourir le tableau tableauinit sur la première colonne
                   For e = 1 To UBound(tableau_machine, 1) 'il va également parcourir le tableau tableau_machine afin de le remplir
                                                                                            'progressivement
                          If tableauinit(k, 0) = "O" & val_job & oper Then 's'il trouve dans le tableau tableauinit la valeur "O" & val_job & oper alors
                       tableau_machine(e, 0) = tableauinit(k, 0) 'tableau_machine va se remplir en prenant la valeur "O" & val_job & oper qu'il a trouvé
                       Cells(15 + e, 7) = tableau_machine(e, 0)  'je lui dit donc de reporté la valeur qu'il a trouvé sur le petit tableau que j'ai fais sur excel
                       End If
                  Next e
              Next k
          Next oper
        Next i
    ce que je vois en compilant c'est que mon tableau "tableau_machine" se rempli bien sur sa première colonne,comme je le souhaitais, en revanche il se rempli avec toujours la même valeur alors qu'il devrait chercher d'autre valeur car les variable oper et val_job s'incrémente.

    je pense donc que je n'utilise pas la bonne boucle et la bonne syntaxe...

    je vous joins mon fichier excel pour le constater


    merci
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour,

    je ne vois pas ce qui change par rapport à ta précédente discussion pourtant qualifiée en résolu !

    En fait dans celle-ci je me demande si tu n'as pas inversé l'ordre des tableaux dans tes boucles,
    du genre lecture dans le tableau résultat au lieu du tableau source …

    Avec une présentation claire et exhaustive …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 352
    Points : 182
    Points
    182
    Par défaut
    non c'est différent, la dernière discussion je chercher la syntaxe suivante : maintenant je voudrais que mon code parcourt la colonne B de ma feuille excel (ce qui correspondrait à k = 0 To UBound(tableauinit, 1) ) et qu'il recherche dans cette colonne la valeur "O" & val_job & oper

    s'il l'a trouvé alors il va me reporter cette valeur dans la colonne G de ma feuille excel (ce qui correspondrait a mon tableau tableau_machine(e, 0))

    et ainsi de suite...

    a chaque fois qu'il trouvera une valeur dans le tableauinit il me l'a reporte dans mon tableau tableau_machines , sur ces deux tableau je me focalise uniquement sur leurs premières colonnes , c'est pourquoi il n'y a que les lignes qui s'incrémentent

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 352
    Points : 182
    Points
    182
    Par défaut
    c'est bon merci je viens de trouver , c'etait ce bout de code que je cherchais en fait :

    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
    e = 1
    For i = 1 To b
        val_job = a(i)
     ' val_job = 1
     
      For oper = 1 To tot_noper 'je lui dit d'aller de 1 à 7 (tot_noper) car au pire des cas il n'y aura qu'une seule tache
        For k = 0 To UBound(tableauinit, 1)
                'For e = 1 To UBound(tableau_machine, 1)
                  If tableauinit(k, 0) = "O" & val_job & oper Then
                    tableau_machine(e, 0) = tableauinit(k, 0)
                    Cells(15 + e, 7) = tableau_machine(e, 0)
                    e = e + 1
                    'MsgBox tableauinit(k, 0)
                  End If
              'Next e
          Next k
      Next oper
    Next i
    on remarque bien que mon tableau tableau_machine se rempli bien correctement

    merci encore

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

Discussions similaires

  1. remplir un tableau avec une boucle while
    Par supcomingenieur dans le forum Langage
    Réponses: 12
    Dernier message: 03/05/2013, 09h54
  2. Présentation d'un tableau avec une boucle for()
    Par Jarodd dans le forum Langage
    Réponses: 2
    Dernier message: 19/12/2008, 11h39
  3. [PHP 5.0] Complèter un tableau avec une boucle "for"
    Par kriekbellevue dans le forum Langage
    Réponses: 1
    Dernier message: 07/12/2008, 22h04
  4. Construction Tableau avec une boucle
    Par fred_hot dans le forum Langage
    Réponses: 6
    Dernier message: 08/09/2008, 11h54
  5. [MySQL] Remplir un tableau avec une requête
    Par comme de bien entendu dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/06/2007, 11h27

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