XL 2010 Transfert d'un Tab dans un autre

néné06

XLDnaute Accro
Bonjour le salon,
Après une longue absence, je repasse par le forum car un ami a demandé mon aide, pour un petit programme.
n'ayant plus pratiqué depuis longtemps, des lacunes apparaissent!
Je bloque sur un problème tous bête.
J'ai, dans mon programme, deux tableaux 2D.
Je rempli le premier et c'est OK - Dim Tablo_Temp(25, 18)
Je souhaite charger le deuxième tableau avec les données du premier - Dim Tablo_Somme(25, 18)
J'écrit donc !Tablo_Somme = Tablo_Temp
Et ça ne fonctionne pas
J'ai regardé les explications de JB mais je ne trouve pas la solution ou l'erreur de syntax?

Voici une partie du programme:

Option Base 1

Dim Tablo_Temp(25, 18)

Dim Tablo_Somme(25, 18)

Public Sub Ecriture_des_données_sur_Reporting()

[C9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 1)

[D9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 2)

[E9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 3)

[F9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 4)

[G9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 5)

[H9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 6)

[I9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 7)

[J9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 8)

[N9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 9)

[O9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 10)

[P9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 11)

[S9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 12)

[Y9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 13)

[K9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 14)

[L9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 15)

[Q9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 16)

[T9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 17)

[Z9].Resize(UBound(Tablo_Temp, 1)) = Application.Index(Tablo_Temp, , 18)



Tablo_Somme = Tablo_Temp

End Sub

D'avance, merci pour votre aide!

A+
 

Theze

XLDnaute Occasionnel
Bonjour,

En fait, c'est tout bête, il ne faut pas initialiser tes tableaux dans la déclaration mais avec un Redim :
Code:
Sub Tableau()
   
    Dim Tablo_Temp()
    Dim Tablo_Somme()
   
    ReDim Tablo_Temp(1 To 25, 1 To 18)
           
    'ici ton code de remplissage de Tablo_Temp...
    '...
    '...
   
    ReDim Tablo_Somme(1 To UBound(Tablo_Temp, 1), 1 To UBound(Tablo_Temp, 2))
   
    Tablo_Somme = Tablo_Temp
    'ici, suite du code...
    '...
    '...
   
End Sub
 

Statistiques des forums

Discussions
312 176
Messages
2 085 962
Membres
103 067
dernier inscrit
el_privach