Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Joshua-rj

[Resolvido] Erro em de Tempo de Execução '13':Tipos Incom

Recommended Posts

Estou tentando fazer com que haja uma subtração entre as ranges A3 e B3 caso seus valores sejam diferentes de 0. No entanto não estou conseguindo, pois na linha do IF, acontece esse bendito erro. Aguem pode me ajudar, por favor?

 

Sub prorata()
	Dim dias As Integer
	
	[b]If Sheets(Plan1).Range("A3").Value <> 0 And Sheets(Plan1).Range("B3").Value Then[/b]
			dias = Sheets(Plan1).Range("A3").Value - Sheets(Plan1).Range("B3").Value
	Else
			dias = 0

	End If
	
	Sheets(Plan1).Range("C3").Value = dias
	
End Sub

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, primeiro que acho que deveria estar assim né:

 

If Sheets(Plan1).Range("A3").Value <> 0 And Sheets(Plan1).Range("B3").Value <> 0 Then

Tipos incompatíveis significa que os valores que está comparando, nesse caso, não são do mesmo tipo. Por exemplo, o valor que está armazenado em Sheets(Plan1).Range("A3").Value deve ser uma string, e você está comparando com um número. Tente transformar para um número e veja se resolve:

 

If CDbl(Sheets(Plan1).Range("A3").Value) <> 0 And CDbl(Sheets(Plan1).Range("B3").Value) <> 0 Then

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo com essa modificação o erro persiste. Já me orientaram também a formatar as células como número. Fiz e o erro persite. Há algo mais que eu possa fazer, para evitar esse erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui evitar o erro adicionando aspas ao Sheets("Plan1").

O código então, ficou assim:

 

Sub prorata()
	Dim dias As Integer
	
	If Sheets("Plan1").Range("A3").Value <> 0 And Sheets("Plan1").Range("B3").Value <> 0 Then
		dias = Sheets("Plan1").Range("A3").Value - Sheets("Plan1").Range("B3").Value
	Else
		dias = 0
	End If
	
	Sheets("Plan1").Range("C3").Value = dias
	
		
End Sub

Agradeço pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah, sim claro.

 

Quando você não coloca aspas, ele espero uma valor numérico, no caso o índice da planilha. Por isso estava dando tipos incompatíveis. Colocando aspas ele entende que está passando o nome da planilha e aceita.

 

Parabéns...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.