Notifications
Clear all

Macro com Erro de execução.

5 Posts
4 Usuários
0 Reactions
940 Visualizações
(@contador)
Posts: 1
New Member
Topic starter
 

Olá Pessoal.

Sou novo no Forum, e estou escrevendo pois estou com um problema em uma planilha que estou elaborando, mas que esta apresentando mensagens de erro, segue a programação.

Sub Recepcao()
'Macro Recepcao dos Dados

Dim VarCodProduto As String
Dim VarDescricaoProdutoServico As String
Dim VarFornecedor As String
Dim VarNumeroNf As Integer
Dim VarNCM As Integer
Dim VarCFOP As Integer
Dim VarUnid As String
Dim VarQuantidade As Integer
Dim VarValorUnitario As Integer
Dim VarValorTotal As Integer
Dim VarValorIcms As Integer
Dim VarValorIpi As Integer
Dim VarAliqIcms As Integer
Dim VarAliqIpi As Integer
Dim VarValorPis As Integer
Dim VarValorCofins As Integer
Dim VarValorIrpj As Integer
Dim VarValorCsll As Integer
Dim VarOutrosImpostos As Integer
Dim VarTotalImpostos As Integer

VarCodProduto = Application.InputBox("Entre o Cod. Produto", , , , , , 2)
VarDescricaoProdutoServico = Application.InputBox("Entre com o nome do produto", , , , , , 2)
VarFornecedor = Application.InputBox("Entre o Fornecedor", , , , , , 2)
:arrow: VarNumeroNf = Application.InputBox("Entre com o numero da NF", , , , , , 1)
:arrow: VarNCM = Application.InputBox("Entre com o NCM", , , , , , 1)
VarCFOP = Application.InputBox("Entre com o CFOP", , , , , , 1)
VarUnid = Application.InputBox("Entre com a UNID.", , , , , , 2)
VarQuantidade = Application.InputBox("Entre a quantidade", , , , , , 1)
VarValorUnitario = Application.InputBox("Entre com o valor unitário", , , , , , 1)
VarValorTotal = Application.InputBox("Entre com o valor total", , , , , , 1)
VarValorIcms = Application.InputBox("Entre com o valor do ICMS", , , , , , 1)
VarValorIpi = Application.InputBox("Entre com o valor do IPI", , , , , , 1)
VarAliqIcms = Application.InputBox("Entre com a Aliquota do ICMS", , , , , , 1)
VarAliqIpi = Application.InputBox("Entre com a Aliquota do IPI", , , , , , 1)
VarValorPis = Application.InputBox("Entre com o valor do PIS", , , , , , 1)
VarValorCofins = Application.InputBox("Entre com o valor da COFINS", , , , , , 1)
VarValorIrpj = Application.InputBox("Entre com o valor do IRPJ", , , , , , 1)
VarValorCsll = Application.InputBox("Entre com o valor da CSLL", , , , , , 1)
VarOutrosImpostos = Application.InputBox("Entre com o valor de outros impostos", , , , , , 1)

Range("EntraCod.Produto").Select
ActiveCell.FormulaR1C1 = VarCodProduto
Range("EntraDescrição_Produto_Serviço").Select
ActiveCell.FormulaR1C1 = VarDescricaoProdutoServico
Range("EntraFornecedor").Select
ActiveCell.FormulaR1C1 = VarFornecedor
Range("EntraNumero_NF").Select
ActiveCell.FormulaR1C1 = VarNumeroNf
Range("EntraNCM_SH").Select
ActiveCell.FormulaR1C1 = VarNCM
Range("EntraCFOP").Select
ActiveCell.FormulaR1C1 = VarCFOP
Range("EntraUNID.").Select
ActiveCell.FormulaR1C1 = VarUnid
Range("EntraQUANTIDADE").Select
ActiveCell.FormulaR1C1 = VarQuantidade
Range("EntraValor_unitario").Select
ActiveCell.FormulaR1C1 = VarValorUnitario
Range("EntraValor_Total").Select
ActiveCell.FormulaR1C1 = VarValorTotal
Range("EntraValor_ICMS").Select
ActiveCell.FormulaR1C1 = VarValorIcms
Range("EntraValor_IPI").Select
ActiveCell.FormulaR1C1 = VarValorIpi
Range("EntraAliq._ICMS").Select
ActiveCell.FormulaR1C1 = VarAliqIcms
Range("EntraAliq_IPI").Select
ActiveCell.FormulaR1C1 = VarAliqIpi
Range("EntraValor_PIS").Select
ActiveCell.FormulaR1C1 = VarValorPis
Range("EntraValor_COFINS").Select
ActiveCell.FormulaR1C1 = VarValorCofins
Range("EntraValor_IRPJ").Select
ActiveCell.FormulaR1C1 = VarValorIrpj
Range("EntraValor_CSLL").Select
ActiveCell.FormulaR1C1 = VarValorCsll
Range("EntraOutros_Impostos").Select
ActiveCell.FormulaR1C1 = VarOutrosImpostos

End Sub

indiquei o local onde o depurador indica o erro com o Smile :arrow: , sei que pra vocês isso é fácil, mas sou contador e tenho apenas um curso de excel básico, não entendo muito de VBA.

Obrigado pela atenção

 
Postado : 28/10/2014 2:25 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Analisando no Visual, estou supondo que o que está digitando no InputBox não é NÚMERO, uma vez que definiu as Variáveis :

Dim VarNumeroNf As Integer
Dim VarNCM As Integer
INTEGER, só aceita digitar valor Numerico, se digitar Texto irá dar o erro de incompatibilidade, então se o Valor não for Numerico , elimine o "As Integer"

[]s

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

 
Postado : 28/10/2014 4:04 pm
sandroh
(@sandroh)
Posts: 40
Eminent Member
 

Qual o erro que aparece?
Eu creio que pode ser também o tamanho do número que você está colocando na variável do tipo Integer... Tente colocar como Double pra ver...

Caso tenha resolvido, não esqueça de clicar na mãozinha ao lado da ferramenta "citar" e fechar o tópico ;)

 
Postado : 28/10/2014 4:08 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Neste caso o erro irá continuar pois DOUBLE e INTEGER são Numéricos e não aceitam tipo Texto, a diferença só está no tamanho de alocação :
Veja a tabela abaixo :

Então se for Texto ou Alfa-Numerico ira dar erro.

De uma olhada no link abaixo :
Módulo 5 - Lição 08 - VBA - Declaração de Variáveis
http://juliobattisti.com.br/cursos/exce ... lo5/08.asp

[]s

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

 
Postado : 28/10/2014 4:34 pm
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

Na input box o ultimo valor, define que tipo de "valor" irá retornar (do help VBA)

Valor Significado 
0 Uma fórmula 
1 Um número 
2 Texto (uma seqüência) 
4 Um valor lógico (True ou False) 
8 Uma referência a células, como um objeto Range 
16 Um valor de erro, como #N/D 
64 Uma matriz de valores 

Então input tipo 1 retorna numero, porem assim como o Sandro creio que o erro deve-se ao tamanho do numero da nota fiscal definida como Integer (limite 32767) ja que notas fiscais normalmente teem números maiores.
Defina sua variavel como Currency, e experimente

Reinaldo

 
Postado : 29/10/2014 8:42 am