Bonjour à tous,
Je rencontre un problème pour copier/coller des onglets depuis différents classeurs vers un classeur "tiers" (tous ouverts dans la même application), je m'explique :
J'ouvre un certain nombre de classeurs (n-1 classeurs) dont il me faut récupérer les données, et donc copier chaque onglet vers mon classeur "tiers" (qui est mon classeur n, toujours ouvert en dernier). J'utilise le code suivant
L'execution de la macro se déroule parfaitement lors de la première boucle "i=1", les onglets du premier classeur sont collés dans le dernier classeur ouvert. Cependant pour i=2, une erreur se produit lors du collage des onglets (dernière ligne de la boucle i): "runtime 9 - subscript out of range".
Je ne comprends pas ce qui cloche, auriez-vous s'il vous plaît une idée du problème ?
Bonne journée
Je rencontre un problème pour copier/coller des onglets depuis différents classeurs vers un classeur "tiers" (tous ouverts dans la même application), je m'explique :
J'ouvre un certain nombre de classeurs (n-1 classeurs) dont il me faut récupérer les données, et donc copier chaque onglet vers mon classeur "tiers" (qui est mon classeur n, toujours ouvert en dernier). J'utilise le code suivant
Code:
Option Explicit
Sub transfert()
Dim MyArray() As String
Dim i As Integer, X As Byte
Dim j As Integer
Dim k As Integer
Dim nb As Integer
Dim n As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
n = Workbooks.Count
nb = Workbooks(n).Sheets.Count
For i = 1 To n - 1 'boucle jusqu'à l'avant dernier classeur, le dernier étant le classeur de destination des données
Workbooks(i).Activate
k = Workbooks(i).Worksheets.Count
For j = 1 To k 'copie des onglets du classeur i
ReDim Preserve MyArray(X)
MyArray(X) = Sheets(j).Name
X = X + 1
Next j
Workbooks(i).Worksheets(MyArray).Copy before:=Workbooks(n).Sheets("Sheet1")
Next i
End Sub
L'execution de la macro se déroule parfaitement lors de la première boucle "i=1", les onglets du premier classeur sont collés dans le dernier classeur ouvert. Cependant pour i=2, une erreur se produit lors du collage des onglets (dernière ligne de la boucle i): "runtime 9 - subscript out of range".
Je ne comprends pas ce qui cloche, auriez-vous s'il vous plaît une idée du problème ?
Bonne journée
Dernière édition: