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...
merci mais les valeur son variable alors je veux que le résulta obtenu soit variablewer Query
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
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
[A:BW].Copy .[A1] 'copier-coller
[A:BZ].Copy .[A1] 'copier-coller