remplacer deux boucles imbriquées par un tableu

zephir94

XLDnaute Impliqué
Bonjour à tous,

J'ai beaucoup de mal avec les tableaux, je suis allé lire beaucoup de tuto mais je n’arrive pas à avancer !
Pour mes besoins actuel je voudrais remplacer deux boucles imbriquées qui récupèrent et additionnent des valeurs en D et recopie les nom trouvé en b et C en parcourant des feuilles, le nombre de la dernière feuille étant sélectionnée par l'utilisateur dans une listbox.

Voici mon code :

Code:
u = ListBox1.ListCount
For o = 4 To 113
For d = 1 To u
val0 = "S" & d
With Sheets(val0)
  val1 = Val(Sheets(val0).Range("C" & o).Value)
  If IsNumeric(val1) Then
   If Sheets(val0).Range("H" & o).Value = "" Then
     Feuil66.Range("D" & o).Value = Feuil66.Range("D" & o).Value + 1
     Feuil66.Range("B" & o).Value = Sheets(val0).Range("B" & o).Value
     Feuil66.Range("C" & o).Value = Sheets(val0).Range("AD" & o).Value
End If
End If
End With
Next
Next

Merci par avance pour m'aider à transformer mes deux boucles imbriquées en un tableau avec des explications me permettant de passer le cape de la compréhension !
Je pense que ce tableau doit comporter un array pour les colonnes D,B,AD et doit être en deux dimensions !

Bien amicalement

Zephir
 
Dernière édition:

zephir94

XLDnaute Impliqué
Bonjour Dranreb,

Merci pour cette réponse.

GigIdx ???? c'est quoi
Je voudrais comprendre comment se construit un tableau, j'ai effectué beaucoup de recherche mais je n'arrive pas à comprendre comment le construire et l'adapter par rapport à mes deux boucles
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
C'est un complément VBA qui contient des utilitaires de concaténation de tableaux provenant de plusieurs sources et une fonction Gigogne qui permettrait d'organiser le tableau résultant de la concaténation en collections sans doublon, classées et imbriquées.
 

zephir94

XLDnaute Impliqué
Bon j'ai réussi voici le code, en fait un tableau se comporte comme une feuille !
Code:
u = ListBox1.ListCount ' récupération du dernier numéro de feuille
Dim tabdb(113, 3) ' déclaration d'un tableau de 114 lignes et 4 colonnes à deux dimensions
For d = 1 To u
For o = 4 To 113
val0 = "S" & d
With Sheets(val0)
  val1 = Val(Sheets(val0).Range("C" & o).Value)
  If IsNumeric(val1) Then
   If Sheets(val0).Range("H" & o).Value = "" Then
     tabdb(o, 0) = Sheets(val0).Range("B" & o).Value ' remplissage des colonnes du tableau 0
     tabdb(o, 1) = Sheets(val0).Range("AD" & o).Value ' remplissage des colonnes du tableau 1
     tabdb(o, 2) = Sheets(val0).Range("A" & o).Value' remplissage des colonnes du tableau  2
     tabdb(o, 3) = tabdb(o, 3) + 1 ' remplissage des colonnes du tableau 3
End If
End If
End With
Next
Next
Feuil66.Range("B1:E113").Value = tabdb ' j'écris le tableau dans une plage de même taille
Merci à vous tous
 

Discussions similaires

Réponses
4
Affichages
165
Réponses
7
Affichages
292