With this test data:
You can accomplish this with the following code, where the explanation is in the comment:
Sub teste()
Dim ws As Worksheet
Dim UltimaLinha As Long, i As Long
Dim rng As Range
Dim matriz() As Variant
Set ws = ThisWorkbook.Sheets("Planilha1")
i = 1
With ws
'Mostra dados se estiverem filtrados
If .FilterMode Then
.ShowAllData
End If
'Última linha da coluna A
UltimaLinha = .Cells(.Rows.Count, "A").End(xlUp).Row
'Filtra o campo 3 do intervalo [A1:D & ultimalinha], ou seja, filtra a coluna C para valores diferentes de Concluída e Não Concluída
.Range(.Cells(1, "A"), .Cells(UltimaLinha, "D")).AutoFilter Field:=3, Criteria1:="<>Concluída", Operator:=xlAnd, Criteria2:="<>Não Concluída"
'Ordena os valores filtrados
.Range("D1").CurrentRegion.Sort Key1:=.Range("D1"), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, DataOption1:=xlSortNormal
'Se houver após o filto, msgbox do primeiro valor
If .Range("A2:A" & UltimaLinha).SpecialCells(xlCellTypeVisible).Count > 0 Then
For Each c In .Range("A2:A" & UltimaLinha).SpecialCells(xlCellTypeVisible)
If i = 1 Then
MsgBox c
End If
i = i + 1
Next c
End If
'Mostra dados se estiverem filtrados
If .FilterMode Then
.ShowAllData
End If
End With
End Sub
Upshot:
Dude, it’s like nothing haha, thank you so much for the shared help.
– typemark22