Filtre sur macro

Bonjour,

J'ai ici une macro qui me copie/colle les données depuis une plage vers une autre. J'aimerai que la copie se fasse tout en classant la colonne BB de manière décroissante mais je n'y arrive pas

Le fichier de test est présent un peu plus bas, merci d'avance pour votre aide.

Bonne matinée

4fichier-test-3.xlsm (666.93 Ko)

Salut Pablito,

quelque chose comme ça ?

Private Sub cmdGO_Click()
'
Dim iRow1%, iRow2%
'
Application.EnableEvents = False
'
iRow2 = 1
Range("BA:BD").Delete shift:=xlToLeft
'
Do
    iRow1 = Range("AV" & iRow2).End(xlDown).Row
    iRow2 = Range("AV" & iRow1).End(xlDown).Row + 1
    With Range("BA" & iRow1).Resize(iRow2 - iRow1, 4)
        .Value = Range("AV" & iRow1).Resize(iRow2 - iRow1, 4).Value
        .Borders.LineStyle = xlContinuous
        .Sort key1:=Range("BB" & iRow1), order1:=xlDescending, Orientation:=xlTopToBottom
    End With
Loop Until iRow2 = Range("AV" & Rows.Count).End(xlUp).Row + 1
'
Columns("BB").Delete shift:=xlToLeft
Columns("BC").NumberFormat = "0.00 %"
Application.EnableEvents = True
'
End Sub

A+

6pablito.xlsm (788.89 Ko)

Salut Pablito,

quelque chose comme ça ?

Private Sub cmdGO_Click()
'
Dim iRow1%, iRow2%
'
Application.EnableEvents = False
'
iRow2 = 1
Range("BA:BD").Delete shift:=xlToLeft
'
Do
    iRow1 = Range("AV" & iRow2).End(xlDown).Row
    iRow2 = Range("AV" & iRow1).End(xlDown).Row + 1
    With Range("BA" & iRow1).Resize(iRow2 - iRow1, 4)
        .Value = Range("AV" & iRow1).Resize(iRow2 - iRow1, 4).Value
        .Borders.LineStyle = xlContinuous
        .Sort key1:=Range("BB" & iRow1), order1:=xlDescending, Orientation:=xlTopToBottom
    End With
Loop Until iRow2 = Range("AV" & Rows.Count).End(xlUp).Row + 1
'
Columns("BB").Delete shift:=xlToLeft
Columns("BC").NumberFormat = "0.00 %"
Application.EnableEvents = True
'
End Sub

A+

Merci beaucoup !

Rechercher des sujets similaires à "filtre macro"