Notifications
Clear all

Célula.value para mais de uma condição

2 Posts
2 Usuários
0 Reactions
1,261 Visualizações
(@jnexcel)
Posts: 298
Reputable Member
Topic starter
 

Prezados, bom dia!

Eu tenho uma pasta de trabalho com duas planilhas

1 planilha com o nome recibo
1 planilha com o nome Banco de dados

Essa planilha "Recibo" eu vou usar para imprimir os recibos
a planilha "Banco de dados" possui as informações: código da empresa, nome da empresa, endereço, telefone

minha ideia é a seguinte:

quando o usuário digitar o código do cliente, o vba vai trazer automaticamente os outros dados da empresa nas células específicas

segue o meu código para um cliente, eu tenho mais de 200 clientes, como eu posso melhorar essa macro para não ficar uma linha gigante de códigos com 1000 linhas com condições para cada cliente.

segue o meu código atual:

Sheets("Recibo").Select

If Range("aa1") = 1 Then

Sheets("Recibo").Range("j7").Value = Sheets("Banco de dados").Range("b2")
Sheets("Recibo").Range("j9").Value = Sheets("Banco de dados").Range("c2")
Sheets("Recibo").Range("f37").Value = Sheets("Banco de dados").Range("d2")
End If

agradeço a todos pela atenção

 
Postado : 01/11/2019 6:53 am
(@faraha)
Posts: 28
Eminent Member
 

Estou sem acesso ao computador, mas vamos lá:

Você pode tentar fazer um "procv" do nome do cliente para encontrar o cliente e trazer as outras informações.

Segue o código:

Sub exemplo()
Dim Recibo as worksheet, Banco as worksheet
Dim X as double, ulBD as double

Set Recibo = sheets("Recibo")
Set Banco = sheets("Banco de Dados")

ulBD = Banco.cells(rows.count,1).end(xlup).row
For x = 1 to ulBD
If recibo.range("AA1").value = banco.cells(x,1).value then
Recibo.range("J7") = banco.cells(x,2).value
Recibo.range("J9") = banco.cells(x,3).value
Recibo.range("F37") = banco.cells(x,4).value
Goto trab
End if
Next x
Trab:
End sub

Considerei que a informação em na aba "Recibo", célula "AA1" devesse ser comparada com as informações da coluna A da aba Banco de Dados

 
Postado : 01/11/2019 8:00 am