Bonjour,
j'ai mis en place un code permettant d'effectuer rapidement un filtre automatique de mon tableau.
Le code ainsi créé (voir ci-dessous) est parfaitement fonctionnel et permet de mettre en place le filtre.
Seulement le soucis c'est que cela change la hauteur des lignes que j'avais préalablement ajusté. J'ai donc mis en place le code suivant pour remettre la bonne hauteur à chaque ligne.
Mais le problème c'est que ce dernier est très lourd : il reprend la hauteur de chaque ligne une à une, le travail peut être long si le fichier contient de nombreuses lignes.
Auriez-vous des idées pour l'améliorer?
Merci!
j'ai mis en place un code permettant d'effectuer rapidement un filtre automatique de mon tableau.
Le code ainsi créé (voir ci-dessous) est parfaitement fonctionnel et permet de mettre en place le filtre.
Code:
Sub Tri()
Dim L As Integer
L = Range("B10000").End(xlUp).Row
ActiveWorkbook.Worksheets("Travail").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Travail").AutoFilter.Sort.SortFields.Add Key:= _
Range(Cells(2, 4), Cells(L, 4)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Travail").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Seulement le soucis c'est que cela change la hauteur des lignes que j'avais préalablement ajusté. J'ai donc mis en place le code suivant pour remettre la bonne hauteur à chaque ligne.
Mais le problème c'est que ce dernier est très lourd : il reprend la hauteur de chaque ligne une à une, le travail peut être long si le fichier contient de nombreuses lignes.
Auriez-vous des idées pour l'améliorer?
Merci!
Code:
Sub Revoir_hauteur_ligne()
Dim J As Integer
Dim K As Integer
J = Range("B65000").End(xlUp).Row + 1
For K = 6 To J
Rows(K).EntireRow.AutoFit
Rows(K).RowHeight = WorksheetFunction.Max(28, Rows(K).RowHeight)
Next K
End Sub