Usuário com melhor resposta
Localizar apenas o mes em 01/mar/2012""".

Pergunta
-
Boa tarde.
Tenho uma planilha que tem 10 colunas entre elas "DATA", gostaria de localizar e copiar todas de acordo com o mes selecionado em uma combobox.
Por exemplo escolhi mes de marco, gostaria de localizar todas as linhas que tiverem esse mes e copiar as colunas referentes a essas linhas para outra plan.
As formulas que utilizei nao localizam so o mes sempre pegam outros valores por exemplo em linhas que tenham 11/03/2012 e 03/11/2012, quando busco so o mes 03 ela me retorna os dois valores.
Agradeco qualquer dica!
Respostas
-
Boa tarde felipe valew pelo codigo, mas nao consegui implementr para busca com textbox.
Resolvi meu problema com esse codigo aqui:
Private Sub PopulaListBox(ByVal data As String, _
ByVal OrdemServico As String, _
ByVal Tag As String, _
ByVal MotivoDaTroca As String, _
ByVal MotorInstalado As String)
On Error GoTo TrataErro
Dim rst As ADODB.Recordset
Dim campo As Field
Dim myArray() As Variant
Dim i As Integer
Set rst = PreecheRecordSet(data, OrdemServico, Tag, MotivoDaTroca, MotorInstalado)
lstLista.ColumnWidths = "0,9 cm;2,5 cm;2,6 cm ;2cm ;1,8 cm; 3 cm ; 3 cm; 10 cm;"
'pega o número de registros para atribuí-lo ao listbox
lstLista.ColumnCount = rst.Fields.Count
'preenche o combobox com os nomes dos campos
'persiste o índice
Dim indiceTemp As Long
indiceTemp = cboOrdenarPor.ListIndex
cboOrdenarPor.Clear
For Each campo In rst.Fields
cboOrdenarPor.AddItem campo.Name
Next
'recupera o índice selecionado
cboOrdenarPor.ListIndex = indiceTemp
'coloca as linhas do RecordSet num Array, se houver linhas neste
If Not rst.EOF And Not rst.BOF Then
myArray = rst.GetRows
'troca linhas por colunas no Array
myArray = Array2DTranspose(myArray)
'atribui o Array ao listbox
lstLista.List = myArray
'adiciona a linha de cabeçalho da coluna
lstLista.AddItem , 0
'preenche o cabeçalho
For i = 0 To rst.Fields.Count - 1
lstLista.List(0, i) = rst.Fields(i).Name
Next i
'seleciona o primeiro item da lista
lstLista.ListIndex = 0
Else
lstLista.Clear
End If
'atualiza o label de mensagens
If lstLista.ListCount <= 0 Then
lblMensagens.Caption = lstLista.ListCount & " registros encontrados"
Else
lblMensagens.Caption = lstLista.ListCount - 1 & " registros encontrados"
End If
' Fecha o conjunto de registros.
Set rst = Nothing
' Fecha a conexão.
'conn.Close
TrataSaida:
Exit Sub
TrataErro:
Debug.Print Err.Description & vbNewLine & Err.Number & vbNewLine & Err.Source
Resume TrataSaida
End SubCriei uma caixa de combinacao no form do grafico que quando seleciono o mes referente ele seta no txtbox data do form pesquisa
valor referente ao mes que seria " /03/ " por exemplo e me retorna so os valores de marco na plan que esta meus dados para montagem do grafico.
Obrigado pela ajuda e me mostrar esta funcao que muito interessante vou estudar ela e tentar entender todas variaveis.
- Marcado como Resposta shakacfc quarta-feira, 25 de abril de 2012 21:16
Todas as Respostas
-
Qual versão do Excel você usa?
Use um AutoFiltro e filtre o mês de Março. Em seguida, selecione todos os resultados do filtro, pressione F5, clique em Especial e selecione Somente Células Visíveis. Clique em OK. Pressione Ctrl+C e depois, Ctrl+V no lugar onde deseja colar os valors.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
-
Estou usando o 2007.
Entao Felipe, é que eu uso nessa plan so userforms a plan fica desativada.
Eu gostaria de ajuda em um codigo que fizesse isto.
Tentei ate usar o procv direto, sem ser pelo vba mas me retorna valores diferentes.
Isto seria so para exibicao no grafico com os valores de cada mes.
Os graficos tbm sao visualizados em userform.
Obrgd pela ajuda.
- Editado shakacfc terça-feira, 24 de abril de 2012 01:29
-
Sub Data()
'A sintaxe do DateSerial é (ano, mês, dia)
Dim dtBusca As Date
Dim lng As Long
dtBusca = DateSerial(2012, 5, 1)
For lng = 2 To 20 'final da tabela
If Cells(lng, "A") = dtBusca Then
'Data encontrada
Exit For 'Se quiser apenas a primeira correspondência
Else
'Data não encontrada
End If
Next lng
End SubFelipe Costa Gualberto - http://www.ambienteoffice.com.br
-
Boa tarde felipe valew pelo codigo, mas nao consegui implementr para busca com textbox.
Resolvi meu problema com esse codigo aqui:
Private Sub PopulaListBox(ByVal data As String, _
ByVal OrdemServico As String, _
ByVal Tag As String, _
ByVal MotivoDaTroca As String, _
ByVal MotorInstalado As String)
On Error GoTo TrataErro
Dim rst As ADODB.Recordset
Dim campo As Field
Dim myArray() As Variant
Dim i As Integer
Set rst = PreecheRecordSet(data, OrdemServico, Tag, MotivoDaTroca, MotorInstalado)
lstLista.ColumnWidths = "0,9 cm;2,5 cm;2,6 cm ;2cm ;1,8 cm; 3 cm ; 3 cm; 10 cm;"
'pega o número de registros para atribuí-lo ao listbox
lstLista.ColumnCount = rst.Fields.Count
'preenche o combobox com os nomes dos campos
'persiste o índice
Dim indiceTemp As Long
indiceTemp = cboOrdenarPor.ListIndex
cboOrdenarPor.Clear
For Each campo In rst.Fields
cboOrdenarPor.AddItem campo.Name
Next
'recupera o índice selecionado
cboOrdenarPor.ListIndex = indiceTemp
'coloca as linhas do RecordSet num Array, se houver linhas neste
If Not rst.EOF And Not rst.BOF Then
myArray = rst.GetRows
'troca linhas por colunas no Array
myArray = Array2DTranspose(myArray)
'atribui o Array ao listbox
lstLista.List = myArray
'adiciona a linha de cabeçalho da coluna
lstLista.AddItem , 0
'preenche o cabeçalho
For i = 0 To rst.Fields.Count - 1
lstLista.List(0, i) = rst.Fields(i).Name
Next i
'seleciona o primeiro item da lista
lstLista.ListIndex = 0
Else
lstLista.Clear
End If
'atualiza o label de mensagens
If lstLista.ListCount <= 0 Then
lblMensagens.Caption = lstLista.ListCount & " registros encontrados"
Else
lblMensagens.Caption = lstLista.ListCount - 1 & " registros encontrados"
End If
' Fecha o conjunto de registros.
Set rst = Nothing
' Fecha a conexão.
'conn.Close
TrataSaida:
Exit Sub
TrataErro:
Debug.Print Err.Description & vbNewLine & Err.Number & vbNewLine & Err.Source
Resume TrataSaida
End SubCriei uma caixa de combinacao no form do grafico que quando seleciono o mes referente ele seta no txtbox data do form pesquisa
valor referente ao mes que seria " /03/ " por exemplo e me retorna so os valores de marco na plan que esta meus dados para montagem do grafico.
Obrigado pela ajuda e me mostrar esta funcao que muito interessante vou estudar ela e tentar entender todas variaveis.
- Marcado como Resposta shakacfc quarta-feira, 25 de abril de 2012 21:16