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 = ??????
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
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
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
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.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.