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 à

"O" & val_job & oper

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 :

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

144fjsp-f1.rar (23.09 Ko)

E va aller de 1 à ubound(tabmachine)

A chaque boucle... Donc a chaque boucle tu le remplis en entier...

Je pense qu'il y a bien plus simple mais, ne comprenant pas ce que tu veux faire je ne peux t'aider

je veux tout simplement chercher les les valeurs "O" & val_job & oper dans le premier tableau (tableauinit) et à chaque fois qu'il trouve les valeurs il les recopie dans le tableau nommé "tableau_machine"

comment faire pour ne pas remplir mon tableau en entier avec la même valeur, je voudrais juste qu'il rentre la valeur qu'il a trouvé puis qu'il en cherche une autre avec l'incrémentation des variable val_job et oper?

Je ne vais pas me plonger dans ton code rempli de boucles avec des indices que je dois repérer à la main.

Que veux tu que ton code fasse ? parle en Ranges excel et non en tableaux VBA

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)) à la première ligne , s'il retrouve une autre valeur il reporte cette nouvelle valeur à la deuxième ligne ....

et ainsi de suite...

comment lui dire de remplir tableau_machine petit à petit

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

c'est bon merci je viens de trouver , c'etait ce bout de code que je cherchais en fait :

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

Rechercher des sujets similaires à "remplir tableau boucle"