Notifications
Clear all

Filtro nao funciona apos gravar Macro

6 Posts
2 Usuários
0 Reactions
979 Visualizações
(@jotasilva)
Posts: 0
New Member
Topic starter
 

fala galera... estou a quase 15 matando pra tentar fazer com que uma macro funcione apos eu grava-la
Ao gravara a macro ela funciona, mas apos quando vou executa-la nao funciona,
estou querendo que a partir de um valor e data digitado pelo usuario o filtro mostre apenas os criterios passados pelo input....
Segue o código
anexei a planilha tbm s alguém puder me dar uma luz...vlw

Dim dteData As Date
    Dim curValor As Currency
  
    dteData = InputBox("Informe a Data")
    
    curValor = InputBox("Informe o valor")
    curValor = Format(curValor, "#,###,00")
    'Format(txtValor, "Standard")
    Rows("1:1").Select
    Selection.AutoFilter
    Range("H7").Select
    ActiveSheet.Range("$A$1:$H$5").AutoFilter Field:=7, Criteria1:="= & curValor"
    ActiveSheet.Range("$A$1:$H$5").AutoFilter Field:=8, Criteria1:= _
        ">= & dteData", Operator:=xlAnd
    Columns("G:G").Select
    Selection.NumberFormat = "#,##0.00
 
Postado : 24/06/2014 9:02 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

jotaSilva,

Bom Dia!

Veja se é assim.

 
Postado : 24/06/2014 10:19 pm
(@jotasilva)
Posts: 0
New Member
Topic starter
 

Wagner, bom dia!

Cara e bem isso mesmo, mas algo que percebi e que quando rodo pela 1 vez, informando uma data menor ou igual a 10/06/2014 ele funciona legal, dai na segunda vez como tem um format :::
Columns("G:G").Select
'Selection.NumberFormat = "#,##0.00"
::: ele formata essa coluna e nao encontra mais o valor, eu comentei a linha do format e deixei esta coluna como texto dai sempre vai me trazer o valor do input,
Outra coisa que nao consegui desenrolar, se eu coloco uma maior que 10/06/2014 nao funfa...
mais Wagner pode me dizer pq que quando a data e formatada "dteData = Format(dteData, "mm/dd/yyyy")" da certo e quando eu coloco "dd/mm/yyyy"
obrigado pela ajuda Wagner.

 
Postado : 25/06/2014 5:48 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

A questão da data é porque o VBA é americano (em inglês) muito embora a versão do Excel seja em Português.

Quanto ao restante, não entendi...

Peço, por gentileza, votar positivamente.

 
Postado : 25/06/2014 5:54 am
(@jotasilva)
Posts: 0
New Member
Topic starter
 

entendi, ja votei positivo nas duas, sou novo por aqui...

quando uma data e maior que 10 o filtro da data nao funfa, fiz essa pequena alteração e agora quando a data e maior que 12 nao finfa tbm.

Sub teste()

Dim strEntrada As String
Dim dteData As Date
Dim curValor As Double
Dim Data As String

'strEntrada = InputBox("Informe a Data")
strEntrada = Format(Month(Date), "00") & "/" & Format(Day(Date), "00") & "/" & Year(Date)

'dteData = Format(strEntrada, "mm/dd/yyyy")
curValor = 2160.91 'InputBox("Informe o valor")
curValor = Format(curValor, "#,###.00")
'Format(txtValor, "Standard")

'Debug.Print dteData
Debug.Print curValor

Rows("1:1").Select
Selection.AutoFilter
Range("H7").Select
ActiveSheet.Range("$A$1:$H$5").AutoFilter Field:=7, Criteria1:=curValor
ActiveSheet.Range("$A$1:$H$5").AutoFilter Field:=8, Criteria1:=">=" & CDate(strEntrada), Operator:=xlAnd
Columns("G:G").Select
'Selection.NumberFormat = "#,##0.00"
Range("G1").Select
End Sub

 
Postado : 25/06/2014 6:50 am
(@jotasilva)
Posts: 0
New Member
Topic starter
 

Consegui resolver, apos fazer limpar as celulas e depois colar no excel, formatei o valor para ser igual ao input digitado pelo usuaraio, dai deu tudo certo vlw.

Dim i As Integer, celulaTemp As Currency
    
    i = 2
    
    Workbooks("Filtros de Data e Valor.xlsm").Activate
    Sheets("entrada").Activate
    
    While Range("G" & i).Value <> ""
    
    
        celulaTemp = Range("G" & i).Value
        Range("G" & i).NumberFormat = "@"
                
        Range("G" & i) = Format(celulaTemp, "####.00")
              
        i = i + 1
 
Postado : 30/06/2014 6:14 am