Estou usando uma planilha de Controle de Estoque que foi baixada na internet, depois de um certo tempo usando ela, me apareceu esse erro!
não sei resolver e estou postando pra ver ser alguém pode me ajudar em alterar o código VBA, pois não entendo muito, abaixo está de cor vermelha a qual a planilha me informa o erro. Ficarei muito grato se alguém me ajudar!
Option Explicit
Public Function VBA_SELECT(codigo_produto As String, range_produto As Range, range_data As Range, range_valor As Range)
Application.ScreenUpdating = False
Dim produto, valor, data
Dim a, b, c, i
produto = False
valor = CDbl(0)
data = CDate(0)
' encontra a referência da coluna para cada cabeçalho
a = range_produto.Column
b = range_valor.Column
c = range_data.Column
' encontra a referência da linha inicial para a pesquisa
i = range_produto.Row
' atualiza valores e datas de registros do produto de código informado
Do While range_produto.Worksheet.Cells(i, a).Value <> ""
If (range_produto.Worksheet.Cells(i, a).Value = codigo_produto) And (range_produto.Worksheet.Cells(i, c).Value >= data) Then
produto = True
valor = CDbl(range_produto.Worksheet.Cells(i, b).Value)
data = CDate(range_produto.Worksheet.Cells(i, c).Value)
End If
i = i + 1
Loop
Application.ScreenUpdating = True
If produto Then
VBA_SELECT = valor
Else
VBA_SELECT = 0
End If
End Function
Public Sub VBA_FILTRAR(planilha, tabela, campo, intervalo, mensagem)
If (Worksheets(planilha).Range(intervalo).Value = mensagem) Then
Worksheets(planilha).ListObjects(tabela).Range.AutoFilter Field:=campo
With Worksheets(planilha).Range(intervalo).Interior
.Pattern = xlSolid
.PatternThemeColor = xlThemeColorAccent1
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.149998474074526
.PatternTintAndShade = 0
End With
ElseIf (Worksheets(planilha).Range(intervalo).Value = "") Then
Worksheets(planilha).Range(intervalo).Value = mensagem
Else
Worksheets(planilha).ListObjects(tabela).Range.AutoFilter Field:=campo, Criteria1 _
:="=**" + CStr(Worksheets(planilha).Range(intervalo).Value) + "**", Operator:=xlAnd
With Worksheets(planilha).Range(intervalo).Interior
.Pattern = xlSolid
.PatternThemeColor = xlThemeColorAccent1
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
End Sub
Public Sub VBA_DINAMICA(planilha, tabela, campo, intervalo, mensagem)
'MsgBox planilha + vbCrLf + tabela + vbCrLf + campo + vbCrLf + intervalo + vbCrLf + mensagem
If (Worksheets(planilha).Range(intervalo).Value = mensagem) Then
Worksheets(planilha).PivotTables(tabela).PivotFields(campo). _
ClearAllFilters
Worksheets(planilha).PivotTables(tabela).PivotFields(campo). _
PivotFilters.Add Type:=xlCaptionBeginsWith, Value1:="?"
With Worksheets(planilha).Range(intervalo).Interior
.Pattern = xlSolid
.PatternThemeColor = xlThemeColorAccent1
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.149998474074526
.PatternTintAndShade = 0
End With
ElseIf (Worksheets(planilha).Range(intervalo).Value = "") Then
Worksheets(planilha).Range(intervalo).Value = mensagem
Else
ActiveSheet.PivotTables(tabela).PivotFields(campo). _
ClearAllFilters
ActiveSheet.PivotTables(tabela).PivotFields(campo). _
PivotFilters.Add Type:=xlCaptionContains, Value1:="*" + CStr(Worksheets(planilha).Range(intervalo).Value) + "*"
With Worksheets(planilha).Range(intervalo).Interior
.Pattern = xlSolid
.PatternThemeColor = xlThemeColorAccent1
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
End Sub
Sub ATUALIZAR1()
Plan6.PivotTables(1).PivotCache.Refresh
Plan6.Range("J12").Value = "Última atualização: " + Format(Now, "dd/mm/yy hh:mm:ss")
End Sub
Sub ATUALIZAR2()
Plan7.PivotTables(1).PivotCache.Refresh
Plan7.Range("J13").Value = "Última atualização: " + Format(Now, "dd/mm/yy hh:mm:ss")
End Sub
Sub ATUALIZAR3()
Plan8.PivotTables(1).PivotCache.Refresh
Plan8.Range("K12").Value = "Última atualização: " + Format(Now, "dd/mm/yy hh:mm:ss")
End Sub
Sub ATUALIZAR4()
Plan9.PivotTables(1).PivotCache.Refresh
Plan9.Range("E37").Value = "Última atualização: " + Format(Now, "dd/mm/yy hh:mm:ss")
End Sub
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
ERRO EM TEMPO DE EXECUÇÃO '13': Tipos incompatíveis
-
- Acabou de chegar
- Mensagens: 2
- Registrado em: Ter Mai 19, 2015 9:36 am
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: ERRO EM TEMPO DE EXECUÇÃO '13': Tipos incompatíveis
Apenas pelo código e muito difícil encontrar/visualizar o erro.
Sem saber os passos efetuados e estrutura/valores de sua planilha/aplicação, no CHUTOMETRO diria, está tentando converter para double (Cdbl) um valor nulo ou textoou para data um valor/texto incompatível com uma data
Ao ocorrer o erro verifique o valor constante nas celulas referenciadas CDbl(range_produto.Worksheet.Cells(i, b).Value)
Sem saber os passos efetuados e estrutura/valores de sua planilha/aplicação, no CHUTOMETRO diria, está tentando converter para double (Cdbl) um valor nulo ou textoou para data um valor/texto incompatível com uma data
Ao ocorrer o erro verifique o valor constante nas celulas referenciadas CDbl(range_produto.Worksheet.Cells(i, b).Value)
-
- Acabou de chegar
- Mensagens: 2
- Registrado em: Ter Mai 19, 2015 9:36 am
Re: ERRO EM TEMPO DE EXECUÇÃO '13': Tipos incompatíveis
Vou postar para dar vc dar uma olhada e entender melhor
- Anexos
-
- Cópia de Controle de Estoque Relatórios Dinâmicos .rar
- Controle de Estoque
- (448.62 KiB) Baixado 301 vezes
Re: ERRO EM TEMPO DE EXECUÇÃO '13': Tipos incompatíveis
fala jesuéliton, blza cara?
Seguinte, pelo que pude notar ao analisar a planilha, na aba CADASTRO E CONTROLE sua ultima linha com dados é a 396, porém as colunas que contém fórmulas vão até a linha 1508, gerando o erro em questão, pois na função VBA_SELECT um dos dados retornados na função é a conversão cDate numa célula que está em branco.
A função VBA_SELECT tenta converter a linha data = CDate(range_produto.Worksheet.Cells(i, c).Value) (linha que contém formula na aba CADASTRO E CONTROLE, porém está em branco) e retorna o valor 00:00:00, gerando o erro 13: Tipos incompativeis.
Aqui em meus testes, ativei o modo design no editor do VB (clicando no icone de pause na janela principal), fui até a planilha CADASTRO E CONTROLE e simplesmente apaguei as formulas das linhas abaixo da linha 396 e funcionou normalmente. Outro método para evitar o erro, seria tratar o erro no código da função VBA_SELECT.
Sem mais,
[]s
Seguinte, pelo que pude notar ao analisar a planilha, na aba CADASTRO E CONTROLE sua ultima linha com dados é a 396, porém as colunas que contém fórmulas vão até a linha 1508, gerando o erro em questão, pois na função VBA_SELECT um dos dados retornados na função é a conversão cDate numa célula que está em branco.
A função VBA_SELECT tenta converter a linha data = CDate(range_produto.Worksheet.Cells(i, c).Value) (linha que contém formula na aba CADASTRO E CONTROLE, porém está em branco) e retorna o valor 00:00:00, gerando o erro 13: Tipos incompativeis.
Aqui em meus testes, ativei o modo design no editor do VB (clicando no icone de pause na janela principal), fui até a planilha CADASTRO E CONTROLE e simplesmente apaguei as formulas das linhas abaixo da linha 396 e funcionou normalmente. Outro método para evitar o erro, seria tratar o erro no código da função VBA_SELECT.
Sem mais,
[]s