Ir ao conteúdo
  • Cadastre-se
Bruno Rimoldi

Excel RESOLVIDO Uso do IF com 2 hipóteses - VBA

Recommended Posts

Boa tarde pessoal,

 

não estou conseguindo fazer com que esse codigo rode conforme o previsto.

 

A celula J24 e J23 são datas (mm/aaaa) e se forem iguais fazer a condição abaixo "Apuração ou Reapuração" caso seja "ISS". Se for diferente de ISS, ou seja, qualquer outro imposto, a condição é outra. Quando passo o mouse no Depurador (conforme anexo), aparece o resultado Erro 2015.

 

Não consigo postar a planilha aqui porque é muito grande e para chegar até esse procedimento passa por muitas SUBs.

 

            If Sheet5.Range("J14") = "ISS" And Sheet5.Range("J24") = Sheet5.Range("J23") Then
                Sheets("DOF").Range("G4") = "APURAÇÃO"
            Else
                Sheets("DOF").Range("G4") = "REAPURAÇÃO"
            End If
            
            If Sheet5.Range("J14") <> "ISS" And Sheet5.Range("J24") = Right(Sheet5.Range("J22"), 7) Then
                Sheets("DOF").Range("G4") = "APURAÇÃO"
            Else
                Sheets("DOF").Range("G4") = "REAPURAÇÃO"
            End If

 

TELA COM ERRO.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno, boa tarde!

 

Creio que esteja encontrando o erro, pois nas condições IF você pede para verificar uma planilha com o nome Sheets5, porém, ao observar o navegador de objetos do lado esquerdo, não constatei a existencia de nenhuma aba/sheet como o nome Sheets5.

 

Ao invés de Sheets 5 utilize o nome real da planilha de onden advem os dados que você quer chegar na condição. Por exemplo :

 

Sheets17 ou Sheets("DOF") . . .

 

Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe sim Sheet5. O problema causado é que a celula referenciada tem formulas, e esta como: #VALUE! (Erro 2015)

Neste caso teria que usar o seerro. 

Editado por Basole

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia @Basole e @Philipp Moreira,
consegui resolver o enigma eheheh. O codigo ficou assim:

 

If Sheet5.Range("J14") <> "ISS" And Sheet5.Range("J24") = Right(Sheet5.Range("J22"), 7) Then
     Sheets("DOF").Range("G4") = "APURAÇÃO"
Else
     Sheets("DOF").Range("G4") = "REAPURAÇÃO"
End If

If Not IsError(Sheet5.Range("J23")) Then
If Sheet5.Range("J14") = "ISS" And Sheet5.Range("J24") = Sheet5.Range("J23") Then
    Sheets("DOF").Range("G4") = "APURAÇÃO"
Else
    Sheets("DOF").Range("G4") = "REAPURAÇÃO"
End If
End If

Muito obrigado pela ajuda...

Bruno

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×