Notifications
Clear all

Como salvar conteudo do loop em variavel ou matriz ou vetor

5 Posts
3 Usuários
0 Reactions
1,129 Visualizações
(@wessley)
Posts: 55
Trusted Member
Topic starter
 

Boa noite.

Pessoal, gostaria de um código que onde ele armazenasse o conteúdo que esta no loop em algum tipo de matriz ou algo do tipo para ficar mais rápido o código, vou tentar ser mais claro possível por exemplo em uma planilha tem conteúdos nas colunas A ate D em varias linhas por EXEMPLO conteudo da A1:D100. Eu gostaria que por exemplo ao digitar alguma palavra chave ( parte da palavra, ou parte de alguma frase) na celula F1, aparecesse apartir da celula H1 todos os conteúdos achados ( que contenham a palavra procurada na F1 nas celulas A1:D100). teria como fazer isso ??? Eu ate consigo fazer isso porem eu tenho que validar linha a linha coluna a coluna e cada loop colar na celula H1, porem eu gostaria de algo mais rápido.

 
Postado : 03/02/2016 8:56 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Neste exemplo seu o loop nao demora muito mais que 3 segundos, vale a pena reduzir esse tempo?

Se fosse algo de 100000 linhas ate seria justificavel, mas 100 garanto nao vai fazer diferença.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 04/02/2016 5:24 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia wessley,

Vê se ajuda:

Option Explicit

Public Sub Busca()
Dim wsIndex     As Worksheet
Dim UltL        As Long
Dim Lin         As Long
Dim i           As Long

    Application.ScreenUpdating = False
    Set wsIndex = ThisWorkbook.Worksheets("Plan1")
    
    UltL = Application.WorksheetFunction.Max(2, wsIndex.Cells(Rows.Count, 8).End(xlUp).Row)
    wsIndex.Range("H2:K" & UltL).ClearContents
    UltL = wsIndex.Cells(Rows.Count, 1).End(xlUp).Row
    Lin = 2
    
    For i = 2 To UltL
        If InStr(1, UCase(wsIndex.Cells(i, 2).Value), UCase(wsIndex.Cells(1, 6).Value)) > 0 Then
            wsIndex.Cells(Lin, 8).Value = wsIndex.Cells(i, 1).Value
            wsIndex.Cells(Lin, 9).Value = wsIndex.Cells(i, 2).Value
            wsIndex.Cells(Lin, 10).Value = wsIndex.Cells(i, 3).Value
            wsIndex.Cells(Lin, 11).Value = wsIndex.Cells(i, 4).Value
            Lin = Lin + 1
        End If
    Next i

    Set wsIndex = Nothing
    Application.ScreenUpdating = True

End Sub

Qualquer coisa da o grito.
Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 04/02/2016 6:22 am
(@wessley)
Posts: 55
Trusted Member
Topic starter
 

Caro colega MPrudencio o que eu disse foi um exemplo, porem ontem eu trabalho na usina, tem arquivo que tem mais de 20 mil linhas por isso preciso de um codigo rapido, fui claro ? Muito obrigado pela atenção e colaboração

 
Postado : 04/02/2016 8:07 am
(@wessley)
Posts: 55
Trusted Member
Topic starter
 

Muito obrigado Bernardo seu código foi muito rápido mesmo, outra duvida, e se eu quisesse procurar pelas colunas A,B,C,D pelo critério digitado na célula F1 ??

 
Postado : 04/02/2016 8:21 am