Ajouter plusieurs tableaux dans une Arraylist

Bonsoir

Je voudrais fusionner plusieurs tableaux dans un même seul tableau. Sauf qu'on ne connais pas le nombre de tableaux initiaux.

Voici un exemple simple :

capture

Je ne sais pas comment je peux ajouter un tableau (ex : "A2:C22" ) dans mon Arraylist

Voici ce que j'ai fait. Je n'ai pas testé si cela marche. J'ai des doutes sur la déclaration de mon Arraylist.

Sub test()

Dim I As Integer

Dim tableauFinal As Arraylist

Set tableauFinal = New Arraylist

While ActiveSheet.Cells(1, I) <> ""

If Cells(1, I) = "Tableau" Then

'Ajouter le tableau dans l'arraylist, soit les cellules "Cells(2, I): Cells(2, I+2)"

I = I + 1

Else

I = I + 1

End If

' afficher l'arraylist à partir de la colonne M

End Sub

Je vous remercie d'avance.

5test.xlsx (9.33 Ko)

Bonsoir,

la longueur de ces tableaux est-elle la même ? Ils s'arrêtent tous à la ligne 22 et les données commencent toutes à la ligne 2 ?

Y a t il toujours trois colonnes ?

Dans votre code I n'est pas défini... il faut le mettre au moins égale à 1

@ bientôt

LouReeD

Oui tout ce que vous avez dit est vrai.

La taille du tableau est toujours là même (longeur ligne 2 à 22. Largeur 3 colonnes)

C'est vrai que j'ai oublié d'initialiser I

Merci.

Bonsoir à tous,

Pour ne pas faire de multipost, je réutilise celui-ci. J'ai simplement changer de méthode : j'utilise simplement des tableaux. Voici mon travail :

Sub test() Dim I As Integer, A As Integer I = 1 A = 1 ' variable permettant de copier les tableaux les un à côté des autres While ActiveSheet.Cells(1, I) <> "" If Cells(1, I) = "Tableau" Then Sheets("Feuil1").Range(Cells(2, I), Cells(22, I + 2)).Copy Worksheets("Feuil2").Cells(1, A) I = I + 1 A = A + 3 Else I = I + 1 End If Wend End Sub

Le programme marche une fois, c'est à dire que j'ai mon premier tableau dans la Feuil2, mais c'est tout. J'ai donc un doute avec la ligne While ActiveSheet.Cells(1, I) <> "", mais en utilisant simplement un While I<5, j'obtient le même résultat.

Donc je ne sais pas pourquoi cela ne veux pas copier mon second tableau.

Je vous remercie d'avance

6test.xlsm (22.47 Ko)

Bonsoir,

moi je suis plus Do Loop que While Wend... Voici le code :

Sub test()
    Dim I As Integer, A As Integer
    I = 1
    A = 1 ' variable permettant de copier les tableaux les un à côté des autres
    Do
        If Cells(1, I) = "" Then Exit Do
        If Cells(1, I) = "Tableau" Then
            Sheets("Feuil1").Range(Cells(2, I), Cells(22, I + 2)).Copy Worksheets("Feuil2").Cells(1, A)
            A = A + 3
        End If
        I = I + 3
    Loop
End Sub

Il fonctionne, mais je n'avais pas compris qu'il fallait les coller les uns à coté des autres...

Sinon pour votre erreur elle est simple, en cellule B1, il n'y a rien donc la condition du While n'est plus vérifiée, donc VBA sort de la boucle.

En effet dans votre code le I ne s'incrémente pas de 3 colonne mais d'une seule...

@ bientôt

LouReeD

Bonjour,

ça fonctionne parfaitement !

Maintenant, pour faire plaisir mon école, je vais essayer de stocker tous les tableaux dans un seul , puis de l'afficher.

Si j'ai besoin d'aide je reviens ici

Merci de votre retour et de vos remerciements !

@ bientôt

LouReeD

Bonjour

Après un charmant weekend sous la pluie, je reviens vers vous car j'ai de nouveau un problème.

Le fichier que je vous avez transmis était qu'un exemple de ce que je voulais faire. Mais quand j'applique la macro dans mon projet, j'ai un petit soucis.

Mon tableau final me retourne des #ref! car les données que je copies de tous les tableaux, sont des cellules de calculs. Voici un exemple de l'erreur #ref! que j'obtient : =SI(OU(N(A3)=0;N(#REF!)=0);"";ABS(1-(A3/#REF!)))

[Inline]

Dim I As Integer, A As Integer

I = 12

A = 5 ' variable permettant de copier les tableaux les un à côté des autres

Do

If Cells(1, I) = "" Then Exit Do

If Cells(1, I) = "Écart fournisseur / mesureur (%)" Then

Sheets("Essais").Range(Cells(2, I), Cells(22, I + 2)).Copy Worksheets("Calculs").Cells(2, A)

A = A + 3

End If

I = I + 11

Loop

End Sub

[/Inliner]

Je vous remercie d'avance.

8test.xlsm (43.75 Ko)
Rechercher des sujets similaires à "ajouter tableaux arraylist"