Power Query est vraiment la solution la plus simple mais voici une macro :merci mais je veux un macro
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dest As Range, nlig
Set dest = [R6] '1ère cellule du résultat
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
dest.Resize(Rows.Count - dest.Row + 1, 2).Clear 'RAZ
Workbooks.Add xlWBATWorksheet 'document auxiliaire
With ActiveSheet
[A:P].Copy .[A1] 'copier-coller
.UsedRange = .UsedRange.Value 'supprime les formules
.Rows("1:5").Delete xlUp
.UsedRange.Sort .Columns("P"), xlDescending, Header:=xlYes 'tri
nlig = Application.CountIf(.Columns("P"), ">=100") + 1
.Range("D1:D" & nlig).Copy dest...
Power Query est vraiment la solution la plus simple mais voici une macro :merci mais je veux un macro
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dest As Range, nlig
Set dest = [R6] '1ère cellule du résultat
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
dest.Resize(Rows.Count - dest.Row + 1, 2).Clear 'RAZ
Workbooks.Add xlWBATWorksheet 'document auxiliaire
With ActiveSheet
[A:P].Copy .[A1] 'copier-coller
.UsedRange = .UsedRange.Value 'supprime les formules
.Rows("1:5").Delete xlUp
.UsedRange.Sort .Columns("P"), xlDescending, Header:=xlYes 'tri
nlig = Application.CountIf(.Columns("P"), ">=100") + 1
.Range("D1:D" & nlig).Copy dest 'copier-coller
.Range("P1:P" & nlig).Copy dest(1, 2) 'copier-coller
End With
ActiveWorkbook.Close False 'ferme le document auxiliaire
Application.EnableEvents = True 'réactive les évènements
End Sub
Sub Resultat()
Dim F As Worksheet, dest As Range, nlig
Set F = ActiveSheet
Set dest = F.[R6] '1ère cellule du résultat
Application.ScreenUpdating = False
dest.Resize(Rows.Count - dest.Row + 1, 2).Clear 'RAZ
Workbooks.Add xlWBATWorksheet 'document auxiliaire
With ActiveSheet
F.[A:P].Copy .[A1] 'copier-coller
.UsedRange = .UsedRange.Value 'supprime les formules
.Rows("1:5").Delete xlUp
.UsedRange.Sort .Columns("P"), xlDescending, Header:=xlYes 'tri
nlig = Application.CountIf(.Columns("P"), ">=100") + 1
.Range("D1:D" & nlig).Copy dest 'copier-coller
.Range("P1:P" & nlig).Copy dest(1, 2) 'copier-coller
End With
ActiveWorkbook.Close False 'ferme le document auxiliaire
End Sub
[A:BW].Copy .[A1] 'copier-coller
[A:BZ].Copy .[A1] 'copier-coller
merci mais les valeur son variable alors je veux que le résulta obtenu soit variablewer Query
grand merci job75 ..<3<3Pour terminer voici une solution très classique par formules.
Elle utilise la colonne auxiliaire P avec en P7 =Q7-LIGNE()/10