feuilles dans tableau variant

Gipéhel

XLDnaute Occasionnel
Bonjour à tous,
Je voudrais remplir un tableau variant avec des feuilles de classeurs différents.
Classeur(A).feuille(1).plage (1) + Classeur(B).feuille(5) .plage(2)+ Classeur(Z).feuille(X).plage(p) -----> Tableau()
Comment est-ce possible ?
Merci d'avance. JPL.
 

Hervé

XLDnaute Barbatruc
Bonsoir gipéhel, le forum

une tentative de réponse :

principe, on crée un tableau (tablofeuille) ou l'on stocke le nom du classeur, la feuille, la plage nommée

on boucle sur ce tableau puis on récupère les plages de chaque classeur dans un tableau final.

Les classeurs doivent etre ouverts.
les plages nommées
j'ai considérer que tes plages ne faisaient pas plus de 10 colonnes.


Option Explicit
Sub Bouton1_QuandClic()
Dim tablofeuille(1 To 3, 1 To 3)
Dim tablo()
Dim i As Integer, j As Integer, x As Integer
Dim k As Byte

tablofeuille(1, 1) = 'classeur3.xls': tablofeuille(1, 2) = 'Feuil1': tablofeuille(1, 3) = 'plage1'
tablofeuille(2, 1) = 'classeur4.xls': tablofeuille(2, 2) = 'Feuil3': tablofeuille(2, 3) = 'plage2'
tablofeuille(3, 1) = 'classeur5.xls': tablofeuille(3, 2) = 'Feuil2': tablofeuille(3, 3) = 'plage3'


For i = 1 To UBound(tablofeuille)
       
With Workbooks(tablofeuille(i, 1))
               
With .Sheets(tablofeuille(i, 2))
                       
For j = 1 To .Range(tablofeuille(i, 3)).Rows.Count
                                x = x + 1
                               
ReDim Preserve tablo(1 To 10, 1 To x)
                               
For k = 1 To .Range(tablofeuille(i, 3)).Columns.Count
                                        tablo(k, x) = .Range(tablofeuille(i, 3))(j, k)
                               
Next k
                       
Next j
               
End With
       
End With
Next i

Range('a1').Resize(UBound(tablo, 2),
UBound(tablo, 1)) = Application.WorksheetFunction.Transpose(tablo)
End Sub


salut
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 501
dernier inscrit
talebafia