bonjour,
Je souhaite réaliser un code qui permet de lister dans une listebox les 15 plus petites valeurs qui sont rangées dans les colonnes N , S, X, AC, AH et AM
Il s'agit d'un nombre de jour qu'une opération soit finit. Dans une ligne il peut contenir 6 opérations
J'aimerai quil recherche dans tous le classeur, les valeurs les plus petites par exemple :
ligne5 : opération 3 5jours
Ligne 85 : opération 1 6jours
Ligne5 : opération2 8jours
Voici mon code :
Private Sub ok_Click()
Worksheets(3).Activate
Dim myrange As Range
Dim startX As Variant
' recherche la valeur la plus petite
With Worksheets("preventive")
Set myrange = Union(.Columns("N:N"), .Columns("S:S"), .Columns("X:X"), .Columns("AC:AC"), .Columns("AH:AH"), .Columns("AM:AM"))
startX = Application.WorksheetFunction.Min(myrange)
End With
' localise la valeur la plus petite et renvoie un message
For Each cell In myrange.Cells
If cell.Value = startX Then
MsgBox "La plus petite valeur est " & startX & " ligne n°" & cell.Row & " et colonne n°" & cell.Column
Exit For
End If
Next
Me.ListBox1.Clear
Me.ListBox1.AddItem
Me.ListBox1.List(0, 0) = Worksheets(3).Cells(cell.Row, 2).Value 'Famille
Me.ListBox1.List(0, 1) = Worksheets(3).Cells(cell.Row, 8).Value ' matériels
Me.ListBox1.List(0, 2) = Worksheets(3).Cells(cell.Row, cell.Column - 4).Value
Me.ListBox1.List(0, 3) = Worksheets(3).Cells(cell.Row, cell.Column - 3).Value
Me.ListBox1.List(0, 4) = Worksheets(3).Cells(cell.Row, cell.Column - 1).Value
Me.ListBox1.List(0, 5) = startX ' jour le plus faible
Worksheets(1).Activate
End Sub
Ce code me renvoie uniquement la première valeur, comment faire pour quil me renvoie les 15 suivantes?
merci de votre aide
Je souhaite réaliser un code qui permet de lister dans une listebox les 15 plus petites valeurs qui sont rangées dans les colonnes N , S, X, AC, AH et AM
Il s'agit d'un nombre de jour qu'une opération soit finit. Dans une ligne il peut contenir 6 opérations
J'aimerai quil recherche dans tous le classeur, les valeurs les plus petites par exemple :
ligne5 : opération 3 5jours
Ligne 85 : opération 1 6jours
Ligne5 : opération2 8jours
Voici mon code :
Private Sub ok_Click()
Worksheets(3).Activate
Dim myrange As Range
Dim startX As Variant
' recherche la valeur la plus petite
With Worksheets("preventive")
Set myrange = Union(.Columns("N:N"), .Columns("S:S"), .Columns("X:X"), .Columns("AC:AC"), .Columns("AH:AH"), .Columns("AM:AM"))
startX = Application.WorksheetFunction.Min(myrange)
End With
' localise la valeur la plus petite et renvoie un message
For Each cell In myrange.Cells
If cell.Value = startX Then
MsgBox "La plus petite valeur est " & startX & " ligne n°" & cell.Row & " et colonne n°" & cell.Column
Exit For
End If
Next
Me.ListBox1.Clear
Me.ListBox1.AddItem
Me.ListBox1.List(0, 0) = Worksheets(3).Cells(cell.Row, 2).Value 'Famille
Me.ListBox1.List(0, 1) = Worksheets(3).Cells(cell.Row, 8).Value ' matériels
Me.ListBox1.List(0, 2) = Worksheets(3).Cells(cell.Row, cell.Column - 4).Value
Me.ListBox1.List(0, 3) = Worksheets(3).Cells(cell.Row, cell.Column - 3).Value
Me.ListBox1.List(0, 4) = Worksheets(3).Cells(cell.Row, cell.Column - 1).Value
Me.ListBox1.List(0, 5) = startX ' jour le plus faible
Worksheets(1).Activate
End Sub
Ce code me renvoie uniquement la première valeur, comment faire pour quil me renvoie les 15 suivantes?
merci de votre aide