Notifications
Clear all

Auto filtro o dia da data invertendo com o mes

3 Posts
3 Usuários
0 Reactions
1,226 Visualizações
(@silverio)
Posts: 50
Trusted Member
Topic starter
 

Tenho a rotina abaixo para fazer filtro entre duas datas, porém a segunda data quando o excel coloca na hora de filtrar inverte o dia com o mes, como resolver?

Dim TempoInicial As String, TempoFinal As String
Dim lastRow As Integer
lastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
TempoInicial = VBA.Format(Sheets("BASE GRAFICO").Range("A2").Value, "")
TempoFinal = VBA.Format(Sheets("BASE GRAFICO").Range("b2").Value, "")
If TempoInicial <> "" And TempoFinal <> "" Then
Sheets("BASE").Select
ActiveSheet.Range("$C$1:$W$5000").AutoFilter Field:=20, Criteria1:=">=" & TempoInicial, Operator:=xlAnd, _
Criteria2:="<=" & TempoFinal
End If
End Sub

 
Postado : 30/09/2016 6:14 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente
TempoInicial = VBA.Format(Sheets("BASE GRAFICO").Range("A2").Value, "yyyy/mm/dd")
TempoFinal = VBA.Format(Sheets("BASE GRAFICO").Range("b2").Value, "yyyy/mm/dd")

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

 
Postado : 30/09/2016 6:47 am
(@wvico)
Posts: 1
New Member
 

Boa tarde a todos estou com mesmo problema em uma planilha que estou montando de controle de medicação
quando realizo o filtro entre datas ele aparece certo mas quando transfiro para a planilha ela inverte o dia e mês. já li todos os post referentes a minha duvida mas não consigo soluciona-la :
Segue os códigos que estou usando:
Este é para carregar a listbox:

Private Sub cmd_pesquisar_Click()
 Dim LINHAFINAL, linha, X As Integer


 ListBox1.Clear
 LINHAFINAL = Plan2.Cells(Rows.Count, 1).End(xlUp).Row

 X = 0
 For linha = 4 To LINHAFINAL
 If Plan2.Cells(linha, 2).Value >= Month_data_inicial And Plan2.Cells(linha, 2).Value <= Month_data_final Then
 ListBox1.AddItem Plan2.Cells(linha, 3).Value ([b]esta variável é um data)[/b]
 ListBox1.List(X, 1) = Plan2.Cells(linha, 4).Value ([b]esta variável é um data)[/b]
 ListBox1.List(X, 2) = Plan2.Cells(linha, 5).Value
 ListBox1.List(X, 3) = Plan2.Cells(linha, 6).Value
 ListBox1.List(X, 4) = Plan2.Cells(linha, 7).Value
 ListBox1.List(X, 5) = Plan2.Cells(linha, 8).Value
 ListBox1.List(X, 6) = Plan2.Cells(linha, 9).Value
 ListBox1.List(X, 7) = Plan2.Cells(linha, 10).Value

 X = X + 1
 End If
 Next
 End Sub

e este é para limpar e formatar os dados da minha planilha e depois gravar o dados da listbox

Private Sub UserForm_Initialize()

 Sheets("RELATÓRIO").Select
 Range("A3").Select
 Selection.End(xlDown).Select
 ActiveCell.Offset(1, 0).Select
 Y = ActiveCell.Row
 Rows(Y).Select
 Selection.Delete Shift:=xlUp
 Range("A3").Select
 Range(Selection, Selection.End(xlToRight)).Select
 Range(Selection, Selection.End(xlDown)).Select
 Selection.ClearContents
 Selection.Borders(xlDiagonalDown).LineStyle = xlNone
 Selection.Borders(xlDiagonalUp).LineStyle = xlNone
 Selection.Borders(xlEdgeLeft).LineStyle = xlNone
 With Selection.Borders(xlEdgeTop)
 .LineStyle = xlContinuous
 .ColorIndex = 0
 .TintAndShade = 0
 .Weight = xlThin
 End With
 Selection.Borders(xlEdgeBottom).LineStyle = xlNone
 Selection.Borders(xlEdgeRight).LineStyle = xlNone
 Selection.Borders(xlInsideVertical).LineStyle = xlNone
 Selection.Borders(xlInsideHorizontal).LineStyle = xlNone


 Dim LINHAFINAL, linha, X As Integer
 Sheets("RELATÓRIO").Select



 ListBox1.Clear
 LINHAFINAL = Plan2.Cells(Rows.Count, 1).End(xlUp).Row

 X = 0
 For linha = 4 To LINHAFINAL
 ListBox1.AddItem Plan2.Cells(linha, 3).Value  [b](esta variável é um data)[/b]
ListBox1.List(X, 1) = Plan2.Cells(linha, 4).Value  [b](esta variável é um data)[/b]
ListBox1.List(X, 2) = Plan2.Cells(linha, 5).Value
 ListBox1.List(X, 3) = Plan2.Cells(linha, 6).Value
 ListBox1.List(X, 4) = Plan2.Cells(linha, 7).Value
 ListBox1.List(X, 5) = Plan2.Cells(linha, 8).Value
 ListBox1.List(X, 6) = Plan2.Cells(linha, 9).Value
 ListBox1.List(X, 7) = Plan2.Cells(linha, 10).Value


 X = X + 1
 Next


 End Sub
 
Postado : 23/05/2017 7:25 pm