Foto de Daniel P.
Daniel há 5 anos
Enviada pelo
Site

Como inserir a função if no email.body? vba

Tenho uma planilha que manda comprovantes de pagamento aos clientes. Geralmente faço isso com Crtl C ...V : Montei um cód VBA, estou com dificuldade em inserir a função If Mais ou menos assim: Como colocar essa fórmula If(b5>O;b5;If(b6>0;b6;0)) em linguagem VBA  Email.body = ??????

Excel VBA para excel Geral
2 respostas
Professora Ana Q.
Respondeu há 5 anos
Contatar Ana

Olá, Daniel

 

No VBA você poderá criar uma variável que recebe o valor da sua fórmula. Essa variável deve ser declarada lá no começo do seu código e o tipo dela dependerá do tipo de valor armazenado na sua célula b5 e b6. Se for texto, você declara como string, se for número inteiro você declara como integer. Deixei abaixo uma lista dos tipos mais comum para você ver qual encaixa o seu caso. 

Variant – Tipo Genérico 

Boolean – True ou False (Veradeiro ou Falso)

Integer – Número inteiro de -32.768 a 32.767

Currency – Quantia monetária

Date – Data

String – Texto

 

Se for uma variável do tipo inteiro, teríamos:

Dim VariavelX as Range

Dim CellB5 as Integer

Dim CellB6 as Integer

 

As suas células se tornaram uma variável e você pode tanto analizar elas separdamente como em conjunto. Ou seja, você pode criar variáveis com cada uma (utilizando a função Range). Isso facilita no código lá para frente para você utilizar sempre a variável e não ficar toda hora chamando a função Range. Além de diminuir a chance de erro, fica muito mais simples alterar o código depois caso a origem do dado mude na planilha. 

Set VariavelX =  Workbook("nome da planilha").Worksheets("nome da aba").Range("B5").Value

O seu "If" é uma árvore de decisão, então ele tem que analizar uma série de passos para decidir qual caminho tomar. Ajuda muito se você colocar isso primeiro no papel antes de começar a colocar no código. No seu caso, ficaria algo como:

If CellB5 > 0 Then

  VariavelX = CellB5     


If CellB6 > 0 Then
  VariavelX = CellB6
Else 
(condinuação da tarefa)
End If

 

Agora é só adaptar esse caso mais genérico para a sua necessidade. 

Espero ter ajudado.

 

Ana

 

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Tutoria com IA
Converse com a Minerva IA e aprenda, tire dúvidas e resolva exercícios
Professor Gustavo B.
Respondeu há 5 anos
Contatar Gustavo

Olá Daniel,

Seja varEmailbody a variável que armazena o resultado procurado, B5 e B6 as células de restrição e C5 a célula que apresenta varEmailbody obtido.

Uma subrotina para o questão apresentada seria:

Sub If_Email()
 If Range("B5") > 0 Then
   varEmailbody = Range("B5")
 Else
   If Range("B6") > 0 Then varEmailbody = Range("B6") Else varEmailbody = 0
 End If
 Range("C5") = varEmailbody
End Sub

Qualquer dúvida estou à disposição.

 

Abraços,

Gustavo Borges, M.Sc.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Prefere professores para aulas particulares ou resolução de atividades?
Aulas particulares
Encontre um professor para combinar e agendar aulas particulares Buscar professor
Tarefas
Envie sua atividade, anexe os arquivos e receba ofertas dos professores Enviar tarefa