Seu problema me ajudou a treinar um pouco consulta SQL em planilha Excel, é muitoooo mais rápido que qualquer laço, coisa de segundos.
Fiz um teste pra listar Funcionários, Qtd Vendas e Total Vendido, segue o código e planilha:
Sub ConsultaSQL()
Dim cn As Object, rs As Object, sql As String, i As Long
Set cn = CreateObject("ADODB.Connection")
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & "Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
.Open
End With
sql = "SELECT Funcionário, COUNT(Funcionário), SUM(Valor) FROM [Planilha 1$]"
sql = sql & " GROUP BY Funcionário ORDER BY SUM(Valor) DESC "
Set rs = cn.Execute(sql)
i = 2
Do While Not rs.EOF
Plan4.Cells(i, "A") = rs(0)
Plan4.Cells(i, "B") = rs(1)
Plan4.Cells(i, "C") = rs(2)
i = i + 1
rs.Movenext
Loop
rs.Close
cn.Close
Set cn = Nothing
Set rs = Nothing
End Sub
Postado : 15/09/2020 8:09 pm