У меня возникают проблемы при сравнении значений в столбце R и получении строки с наименьшим числом и назначении наибольшего значения, доступного в столбце B, и я не знаю, как это сделать.
На скриншоте ниже у меня есть данные, которые я получил от кнопки "Tarefas e Tempos"
С этими данными в следующей кнопке "Maqs" я определю количество машин, на которые я хочу разделить рабочую нагрузку. В этом примере я выбрал 4 машины, и это вывод
Таким образом, как вы можете видеть, программа переходит от наибольшего к наименьшему числу в столбце B. Это означает, что машина 1 всегда будет иметь наибольшее общее количество, общее количество от машины 2 будет выше, чем машина 3 и так далее.
Мой вопрос заключается в том, как я могу заставить программу делать то, что делает в этом примере для столбца M, но в столбце N найти наименьшую сумму в столбце R и записать в этой строке, а в столбце N следующее число.
В этом примере это должно стать
Кто-нибудь может мне помочь?
Private Sub CommandButton3_Click()
Worksheets("Sheet1").Activate
Range("A1").Value = "j"
Range("B1").Value = "pj"
Range("E3").Value = "ultima celula em A"
Range("E4").Value = Range("A1").End(xlDown).Row
Range("E1").Value = "total tarefas"
Range("E2").Value = Cells(4, 5).Value - 1
Columns("A:B").Select
Selection.Sort Key1:=Range("B2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("L1").Value = "máqs a usar?"
Dim M As Long
M = Application.InputBox(Prompt:="N maq?", Type:=1)
Do While M < 2
M = Application.InputBox(Prompt:="N maq? ", Type:=1)
Loop
If M > Rows.Count Then
M = Rows.Count
End If
Range("F1").Value = "total maqs"
Range("F2").Value = M
Range("F3").Value = "colunas a fazer"
colunasAfazer = Range("E2").Value / Range("F2").Value
Range("F4").Value = colunasAfazer
Range("F5").Value = "arredondamento"
Range("F6").Value = Round(colunasAfazer + 0.44)
arredondado = Range("F6").Value
For i = 2 To M + 1
Cells(i, 12) = i - 1
Next i
contador = 0
Range("R1").Value = "Total"
Range("R2").Value = 0
Range("R3").Value = 0
Dim j, q As Integer
For j = 12 To arredondado + 11
For i = 2 To M + 1
q = i - 1
Range("R" & i) = WorksheetFunction.Sum(Range("M" & i & ":Q" & i))
If (Cells(i, j)) <> "" Then
contador = contador + 1
Cells(i, j + 1) = WorksheetFunction.Large(Columns(2), contador)
Range("R" & i) = WorksheetFunction.Sum(Range("M" & i & ":Q" & i))
End If
Next i
Next j
End Sub