Bonjour
Tu vas vite le voir dans le code
J'ai laissé les anciennes lignes
Je reprends ici les lignes modifiées
If IsArray(T1) Then
NombreLigne = UBound(T1)
Else
NombreLigne = 1
End If
F1.Cells(2, Col(I)).Resize(NombreLigne) = T1 ' Recopie ces données dans la page "TAB"
F1.Cells(2, Col(I) + 2).Resize(NombreLigne, 3) = T2 ' Idem
F1.Cells(2, Col(I) + 1).Resize(NombreLigne) = NomCadre ' Note le secteur
F1.Cells(2, Col(I) + 3).Resize(NombreLigne).NumberFormat = "0%"
F1.Cells(2, Col(I) + 4).Resize(NombreLigne).HorizontalAlignment = xlCenter
F1.Cells(2, Col(I) + 3).Resize(NombreLigne).HorizontalAlignment = xlCenter
' Tri des données
F1.Cells(2, Col(I)).Resize(NombreLigne, 5).Sort key1:=F1.Cells(2, Col(I) + 4), order1:=xlAscending, dataoption1:=xlSortNormal, Header:=xlNo
' Recherche de la dernière ligne valide (colonne des montants)
NbLg = F1.Cells(Rows.Count, Col(I) + 2).End(xlUp).Row
' On efface après cette ligne jusqu'à .....
F1.Cells(NbLg + 1, Col(I)).Resize(NombreLigne, 5).ClearContents
Ne pas oublier la déclaration de la variable NombreLigne
Ce que j'ai compris de cette erreur
Pour récupérer des données pour les placer dans un tableau on utilise Tableau = Range("A1:A10")
Mais si il n'y a qu'une donnée ce n'est plus un tableau que l'on obtient mais juste une variable contenant la donnée (logique mais emmerdant embêtant)
Car dans le code je me sers de Ubound(Tableau) qui provoque une erreur si Tableau n'est pas un tableau
Pour ça le test If IsArray(T1) Then