Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por Mablove
#30320
Boa tarde gente,

sou iniciante em vba e preciso de ajuda.

Tenho 2 códigos que preciso juntar e fazer 1 somente.

este código abaixo faz uma pesquisa entre datas de uma planilha e cola em outra panilha. O problema dele é que ele só pesquisa em 1 coluna.

Código: Selecionar todos
Sub Relatório()
  Application.EnableEvents = False
    ' Verifica se o valor alterado foi na célula
    'If Not Intersect([K1], Target) Is Nothing Then
        
        Dim lastRow As Long
        Dim lastResultRow As Long
        Dim X As Long
        
        ' Verifica qual a ultima célula preenchida
        lastRow = Plan1.Cells(Rows.Count, 1).End(xlUp).Row
        
        ' Apaga valores anteriores
        Plan2.Range("A2:I65536").ClearContents
        
        lastResultRow = 2 'linha resultado
        
        ' Ciclo em todas as linhas
        For X = 2 To lastRow '1 Linha dados pequisa
        
           ' verifica se o valor é igual ao da pesquisa
           If Plan1.Cells(X, 8).Value >= Plan2.[J1].Value And Plan1.Cells(X, 8) <= Plan2.[K1].Value Then '1 coluna pequisa
           
                ' Copia os valores
                Plan2.Cells(lastResultRow, 1).Value = Plan1.Cells(X, 1).Value
                Plan2.Cells(lastResultRow, 2).Value = Plan1.Cells(X, 2).Value
                Plan2.Cells(lastResultRow, 3).Value = Plan1.Cells(X, 3).Value
                Plan2.Cells(lastResultRow, 4).Value = Plan1.Cells(X, 4).Value
                Plan2.Cells(lastResultRow, 5).Value = Plan1.Cells(X, 5).Value
                Plan2.Cells(lastResultRow, 6).Value = Plan1.Cells(X, 6).Value
                Plan2.Cells(lastResultRow, 7).Value = Plan1.Cells(X, 7).Value
                Plan2.Cells(lastResultRow, 8).Value = Plan1.Cells(X, 8).Value
                Plan2.Cells(lastResultRow, 9).Value = Plan1.Cells(X, 9).Value
            
                lastResultRow = lastResultRow + 1
           End If
        Next
        
    
  '  End If
    Application.EnableEvents = True
'somaEstab

End Sub

Já esse código aqui faz a pesquisa de somente UMA DATA em toodas as planilhas que eu tiver e consigo setar várias colunas ao mesmo tempo.

Código: Selecionar todos
Private Sub CommandButton1_Click()

Dim valor As Integer
Dim c As Variant
Dim procurado As Variant
Dim result As VbMsgBoxResult
Dim i, QuantPlanilhas As Integer
QuantPlanilhas = ThisWorkbook.Worksheets.Count

                If Me.txtdatalocalizar = Empty Then
                MsgBox "Informar a data a ser pesquisada"
                Me.txtdatainicial.SetFocus
                Else
                       procurado = Me.txtLocalizar
                       
                  If IsDate(procurado) Then
                  procurado = CDate(procurado)
                  End If
  
                      For i = 1 To QuantPlanilhas Step 1
                         With Worksheets(i).Range("E:Z")
                             Set c = .Find(procurado, LookIn:=xlValues)
                            If Not c Is Nothing Then
                         Worksheets(i).Select
                         Range(c.Address).Select
                         result = MsgBox("Deseja continuar a busca?", vbYesNo, "Continuar?")
                         
                                 If result = vbNo Then
                      Exit Sub
                    End If
                End If
            End With
        Next
    End If
        
       
End Sub
Eu preciso que os 2 códigos virem somente 1, que o código resultante tenha a pesquisa entre datas mostrando os resultados em uma planilha a parte (código 1) e que a pesquisa seja feita em todas as outras planilhas, em várias colunas, como no código 2.
Tentei de várias formas mas não sei como proceder :cry:
#30329
É menos trabalhoso escrever um código partindo do zero do que remendar códigos existentes e tentando adivinhar o resultado desejado.
Sugiro que você disponibilize uma amostra do seu arquivo Excel com algumas linhas com dados (10 a 15 linhas), com o resultado desejado e coloque na própria planilha as explicações de como obteve o resultado.
Por Mablove
#30358
Se puder me ajudar por e-mail agradeço muito.
Mayhara.26@gmail. com
O meu trabalho nosso tudo é que minhas datas determinam meus produtos. Não está sendo fácil pra mim pois muitos exemplos dependem somente de 1 coluna com datas. eu tenho várias colunas com datas, e terei que pesquisar mensalmente datas que estão dentro de um período
#30360
Faltou você indicar:
1. em que células de qual planilha estarão as datas que formarão o intervalo a ser pesquisado
2. em quais colunas de quais planilhas você quer fazer a pesquisa
3. em qual planilha você quer o resultado da busca
4. quais os itens obtidos na pesquisa serão colocados no resultado (forneça exemplos)
Por Mablove
#30361
1.As células são infinitas, porque vai haver cadastro todos os dias. Então, a partipartir da linha 2 até chegar uma célula vazia.
2. A intenção é q a busca ocorraa em todas as planilhas, que ela seja uma busca bem geralzona. A partir da coluna que começa com O nome "3 meses" em cada planilha, e na planila 3 a que começa com "12 meses" em diante. As planilhas tem quantidades de colunas com datas diferentes.
3. quero o resultado na planilha chamada consulta
4.Os ítens são o nome da planilha (pq ai eu identifico o meu tipo de estudo), o nome do produto e a data encontrada na pesquisa ( que é a data entre duas datas distintas).
#30363
osvaldomp escreveu:Faltou você indicar:
1. em que células de qual planilha estarão as datas que formarão o intervalo a ser pesquisado
Mablove escreveu:1.As células são infinitas, porque vai haver cadastro todos os dias. Então, a partipartir da linha 2 até chegar uma célula vazia.
Vou alterar os termos da minha pergunta na tentativa de melhorar o entendimento:
Você diz que quer procurar uma data que esteja em um intervalo de datas, por exemplo, quer procurar datas entre 5/2/18 e 20/2/18. A pergunta é: em quais células de qual planilha você vai colocar as datas de 5/2/18 e 20/2/18 ?
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord