| Fórum Excel Bácico, Avançado e Vba Este fórum é destina a usuário de Excel, que queiram compartilhar informações a básicas, avançadas e programação em VBA... |
| | Busca o Veículo | |
| | Autor | Mensagem |
---|
santa.ars
Mensagens : 138 Data de inscrição : 07/09/2011
| Assunto: Busca o Veículo Qui Dez 20, 2012 3:40 am | |
| Pessoal, estou tentando mudar uma macro para que busque também o nome do veículo que está em outra planilha. A outra coisa, é que a macro só roda quando muda o nome do mês, se mudar a data inicial não acontece nada. O que altera na macro para fazer funcionar do jeito que preciso.
O link para baixar o arquivo é:
sendspace.com/file/khorz1
A macro está na planilha PROGRAMAÇÃO | |
| | | alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Busca o Veículo Sex Dez 21, 2012 9:37 pm | |
| Boa tarde!!
Se você trocar E1 e G1 para ler no formato Dia/Mês/Anos conseguirá retornar o restante! | |
| | | santa.ars
Mensagens : 138 Data de inscrição : 07/09/2011
| Assunto: Retorno Sáb Dez 22, 2012 12:57 pm | |
| Exclui a condição do E1 e do G1. Ficou assim: If Not d Is Nothing Then For Each rng In d.MergeArea.Cells(1).Offset(2).Offset(, 2).Resize(.UsedRange.Rows.Count - 2).Cells m = Application.Match(rng.Value, n, 0) If Not IsError(m) Then lastrow2 = Cells(Rows.Count, m).End(xlUp).Row + 1
Me.Cells(lastrow2, m) = rng.Offset(, 1).Value
End If Next rng End If
Eles está retornando todos os veículos, e na coluna do nome do cliente. Não vai para a segunda coluna.
O que deve fazer realmente? Por favor, me ajude, estou precisando. | |
| | | santa.ars
Mensagens : 138 Data de inscrição : 07/09/2011
| Assunto: Veículo Dom Dez 23, 2012 2:43 am | |
| A questão da data eu já consegui. O que preciso é buscar o veículo. A idéia é a mesma da busca do cliente, porém como eu disse quero é buscar o veículo. Veja que na planilha PROGRAMAÇÃO há uma macro. Esta macro é que preciso acertar. Por favor, me ajudem. | |
| | | alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Busca o Veículo Qua Dez 26, 2012 2:29 pm | |
| Bom dia!! Seu problema é com as datas. As datas que você tem na "Casa" é ok. As datas que em "Raposa" não estão ok. A data que você tem em E1 de PROGRAMAÇÃO é
11/4/2012 e as datas da Raposa é 11/3/2012 10/10/2012 10/11/2012 11/1/2012 11/2/2012 12/18/2012 11/3/2012 11/3/2012 11/3/2012 11/3/2012 Como você pode ver a lista de datas não são> = 11/4/2011. É por isso que quando você executar o código não copiar qualquer coisa para a folha de Programa. As datas para “Casa"são 11/2/2012 11/1/2012 11/5/2012 11/3/2012 11/2/2012 11/8/2012 11/4/2012 11/5/2012 11/6/2012 11/7/2012 E como você pode ver que você tem diversas datas que são> = 11/4/2012. Espero que ajude
| |
| | | santa.ars
Mensagens : 138 Data de inscrição : 07/09/2011
| Assunto: Datas Qui Dez 27, 2012 5:28 pm | |
| A questão das datas deve ser livre para que o usuário digite na ordem e qualquer que seja a data. Só quero que busque o nome do veículo também. Ele busca o nome do cliente e isso está funcionando bem. Mas quero que busque o veículo que é relativo ao cliente. Continuo achando que o problema não é data. Até mudei o código e consegui fazer a macro buscar o nome do veículo, só que ele busca e coloca na linha abaixo do cliente, quando na verdade tem que ser na coluna ao lado. Por favor, veja com carinho o código abaixo:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C1")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub Else
Dim rng As Range Dim c As Range, x, y Dim d As Range, m, n Dim lasrow1 As Long Dim lasrow2 As Long y = Range("a2:n2").Value2 n = Range("a2:n2").Value2 With Worksheets("AGENDA") Range("A4:N28").ClearContents Set c = .UsedRange.Rows(1).Find(What:=Me.Range("C1").Value, LookAt:=xlPart).MergeArea.Cells(1) Set d = .UsedRange.Rows(1).Find(What:=Me.Range("C1").Value, LookAt:=xlPart).MergeArea.Cells(1) If Not c Is Nothing Then For Each rng In c.MergeArea.Cells(1).Offset(2).Offset(, 2).Resize(.UsedRange.Rows.Count - 2).Cells x = Application.Match(rng.Value, y, 0) If Not IsError(x) Then lastrow1 = Cells(Rows.Count, x).End(xlUp).Row + 1 If rng.Offset(, -1) >= Range("E1") And rng.Offset(, -1) <= Range("G1") Then Me.Cells(lastrow1, x) = rng.Offset(, -2).Value End If End If Next rng End If
If Not d Is Nothing Then For Each rng In d.MergeArea.Cells(1).Offset(2).Offset(, 2).Resize(.UsedRange.Rows.Count - 2).Cells m = Application.Match(rng.Value, n, 0) If Not IsError(m) Then lastrow2 = Cells(Rows.Count, m).End(xlUp).Row + 1 If rng.Offset(, -1) >= Range("E1") And rng.Offset(, -1) <= Range("G1") Then Me.Cells(lastrow2, m) = rng.Offset(, 1).Value End If End If Next rng End If End With
End If
End Sub
| |
| | | alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Busca o Veículo Qui Dez 27, 2012 6:27 pm | |
| Boa tarde!!
Eu quero dizer, que o código retornará somente o que está dentro de E1 e G1, se eu digitar uma data não existente na base, a busca não sera feita. | |
| | | santa.ars
Mensagens : 138 Data de inscrição : 07/09/2011
| Assunto: Retorno Sáb Dez 29, 2012 12:55 am | |
| Entendido. Então, o que eu devo fazer para que isso não ocorra?
E também que seja buscado o veículo, ou seja para que apareça o nome do veículo, assim como aparece o nome do cliente; lembrando que o veículo deve ficar na coluna do lado do cliente (na programação). Confesso que estou com urgência disso e terei outras dúvidas para postar, mas quero matar uma coisa para depois perguntar sobre as outras. | |
| | | Conteúdo patrocinado
| Assunto: Re: Busca o Veículo | |
| |
| | | | Busca o Veículo | |
|
Tópicos semelhantes | |
|
| Permissões neste sub-fórum | Não podes responder a tópicos
| |
| |
| |
|