Valor duplicado em uma matriz VBA

0

Eu tenho esse código para obter o menor número que pode encontrar e sua coluna em cada linha da matriz e escrevê-lo nas células (coluna onde foi encontrado, linha)

Esta é a matriz no início da Matriz no início

Eu executo o código e é isso que acontece no Código executado

O código funciona como previsto, ele sempre encontra o menor número em uma linha, fica laranja e copia a máquina certa.

O problema agora é como posso ter o programa verificar a coluna "Total" cada vez que há mais de um menor número na mesma linha e fazer laranja e copiar o número da linha wicht tem o menor "Total"

Isso deve ser feito na matriz O que deve ser feito

Altere o número laranja na linha 5 e copie esse número para células ("K3")

Este é o código que tenho agora

Dim tarefas, maxcolunaspossiveis, coluna As Long
tarefas = 4
maqs = 5
maxcolunaspossiveis = (maqs + 4) + tarefas + 1
Cells(1, maxcolunaspossiveis) = "Total"

For i = 2 To tarefas + 1

    For q = 2 To maqs + 1
    Cells(q, maxcolunaspossiveis) = Application.Sum(Range(Cells(q, maxcolunaspossiveis - tarefas), Cells(q, maxcolunaspossiveis - 1)))
    Next q

    menor = WorksheetFunction.Small(Range(Cells(i, 2), Cells(i, maqs + 1)), 1)
    coluna = Application.Match(menor, Range(Cells(i, 2), Cells(i, maqs + 1)), 0)

    Cells(i, coluna + 1).Interior.ColorIndex = 45
    Cells(coluna + 1, Cells(coluna + 1, maxcolunaspossiveis).End(xlToLeft).Column + 1) = menor

Next i

    For q = 2 To maqs + 1
        Cells(q, maxcolunaspossiveis) = Application.Sum(Range(Cells(q, maxcolunaspossiveis - tarefas), Cells(q, maxcolunaspossiveis - 1)))
    Next q


End Sub

Eu sei que posso ter algo assim para obter o número de menor número que existe nessa linha Mas eu não sei o que colocar na outra parte

Dim iVal As Integer
iVal = Application.WorksheetFunction.CountIf(Range(Cells(i, 2), Cells(i, maqs + 1)), menor)

If iVal = 1 Then
............What i currently have .....
Else
............What do i do here?.........

Alguém pode me ajudar?

    
por Alex Silva 07.01.2018 / 01:18

0 respostas