Ajustando a rotina indicada no modelo, teste com a rotina abaixo e veja se seria isto, nela tem as 3 opções, Qual Linha, Qual Range e O valor.
Sub UltimaLinhaAntesDo2()
Dim ULinAddress
Dim ULinValor
Dim ULin As Double
Dim i As Double: i = 1
'Cells(Linha,Coluna), Coluna 2 = Coluna B.
Do While Cells(i, 2).Value <> Empty
'Compara o valor da célula.
If Trim(UCase(Cells(i, 2).Value)) = Trim(UCase(2)) Then
ULin = i - 1
ULinAddress = Cells(i - 1, 2).Address(0, 0)
ULinValor = Cells(i - 1, 2).Value
'Sai do Loop
Exit Do
End If
i = i + 1
Loop
'...
'Como exemplo, coloco o valor da Ulin na célula D1
'Uma Linha antes em que se encontra o valor 2
Range("D1") = "LINHA"
Range("D1").Offset(1, 0) = ULin
'Endereço - Range em que se encontra
Range("E1") = "RANGE"
Range("E1").Offset(1, 0) = ULinAddress
'Valor antes do 2
Range("F1") = "VALOR"
Range("F1").Offset(1, 0) = ULinValor
End Sub
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 02/11/2016 6:18 pm