Alimenter une variable tableau avec plusieurs tableau identiques

Bonjour,

J'ai 8 tableaux identiques sur 8 feuilles, je voudrais mettre ses tableaux dans une variable pour les exploiter plus rapidement:

J'ai fais ça;

For T = 1 To 8

nlT = Range("Tableau" & c).Rows.Count Tableau1, Tableau2 etc..

nl = nl + nlT 'cumul les lignes des comptes

ReDim Preserve Tablo(nl, 13)

Tablo = Range("Tableau" & c)

Next

Il n'y a que le dernier tableau qui est chargé.

Peut être que c'est pas faisable.

Bonne soirée.

Jean-Michel

Bonsoir,

Exemple

Sub TableauEmboités()
  Dim Tbl(1 To 3)
  For n = 1 To 3
    Tbl(n) = Sheets(n).[A1:C5]
  Next n
  MsgBox Tbl(3)(2, 2)
End Sub

Boisgontier

15tabemb.zip (11.51 Ko)

Merci,

Je vais l'appliquer ça à mes besoin.

La synthèse de plus de 20 000 lignes est instantané, ce qui permet une mise à jour sur l'activation d'une feuille, presque miraculeux.

Jean-Michel

Bonjour,

J'ai réussis a placer mes 8 feuilles dans une variable grâce à l'exemple de Boisgontierjacques.

Voila ce que cela donne:

Sub CalcSynthese()

Dim Tbl(1 To 8) As Variant 'Tables Comptes

Dim TblRub() As Variant 'Table rubriques

Dim TblResult() As Variant 'Table résultat

Dim nlT% 'nombre de ligne de la base Tbl

Dim nlR% 'nombre de ligne de la base TblRub

Dim lT% 'ligne en cours de Tbl

Dim lR% ' ligne en cours dans TblRub

Dim Debit As Double

Dim S As Double

Dim i%, c%

Dim nl% ' Nbre ligne total

Dim An% ' année demandée

Feuil2.Select

nlR = [B5].End(xlDown).Row - 4

TblRub = Range("B5:B" & nlR + 4)

Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(nlR, 0)).ClearContents

ReDim TblResult(UBound(TblRub, 1), 1)

'Boucle sur les années

Do While ActiveCell < Year(Date) + 1

An = ActiveCell

'Boucle sur les rubriques

For lR = 1 To nlR

'Boucle sur les 8 comptes

For c = 1 To 8

nlT = Range("Compte" & c).Rows.Count

Tbl(c) = Range("Compte" & c)

'Boucle sur les enregistrements de Tbl

For lT = 1 To nlT

If TblRub(lR, 1) = Tbl(c)(lT, 5) And Year(Tbl(c)(lT, 1)) = An Then

Debit = Tbl(c)(lT, 7)

S = S + Debit

End If

Next lT

TblResult(lR, 1) = S

Next c

S = 0

Next lR

For i = 1 To UBound(TblRub, 1)

ActiveCell.Offset(i, 0) = TblResult(i, 1)

Next

ActiveCell.Offset(0, 1).Select

Loop

End Sub

Cette macro n'est pas parfaite, elle plus lente qu'une autre que j'ai faite mais qui ne cumul pas les résultats.

Bonne soirée.

Jean-Michel

Rechercher des sujets similaires à "alimenter variable tableau identiques"