Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por juliotorres
Posts
#25526
Boa tarde, pessoal.

O que fazer para reduzir o código abaixo, uma vez que os comandos são todos iguais, de forma que se eu tiver 50 empresas, não precisarei repetir o mesmo código 50 vezes?

Private Sub cboEmpresasS_Change()

If cboEmpresasS.Value = "EmpresaA" Then
ThisWorkbook.Worksheets("EmpresaA").Activate
Range("Q5").Select
cboClienteNF.RowSource = "EmpresaA!AO5:AO80"
SaldoEmpKg = Application.WorksheetFunction.VLookup(cboEmpresasS, Range("AO5:AQ860"), 2, False)
SaldoEmpVr = Application.WorksheetFunction.VLookup(cboEmpresasS, Range("AO5:AQ860"), 3, False)
SaldoEmpKg = Format(SaldoEmpKg, "#,##0.00")
SaldoEmpVr = Format(SaldoEmpVr, "Currency")

ElseIf cboEmpresasS.Value = "EmpresaB" Then
ThisWorkbook.Worksheets("EmpresaB").Activate
Range("Q5").Select
cboClienteNF.RowSource = "EmpresaB!AO5:AO80"
SaldoEmpKg = Application.WorksheetFunction.VLookup(cboEmpresasS, Range("AO5:AQ860"), 2, False)
SaldoEmpVr = Application.WorksheetFunction.VLookup(cboEmpresasS, Range("AO5:AQ860"), 3, False)
SaldoEmpKg = Format(SaldoEmpKg, "#,##0.00")
SaldoEmpVr = Format(SaldoEmpVr, "Currency")

ElseIf cboEmpresasS.Value = "EmpresaC" Then
ThisWorkbook.Worksheets("EmpresaC").Activate
Range("Q5").Select
cboClienteNF.RowSource = "EmpresaC!AO5:AO80"
SaldoEmpKg = Application.WorksheetFunction.VLookup(cboEmpresasS, Range("AO5:AQ860"), 2, False)
SaldoEmpVr = Application.WorksheetFunction.VLookup(cboEmpresasS, Range("AO5:AQ860"), 3, False)
SaldoEmpKg = Format(SaldoEmpKg, "#,##0.00")
SaldoEmpVr = Format(SaldoEmpVr, "Currency")

End If

End Sub
Avatar do usuário
Por Reinaldo
Avatar
#25534
Sem testar, por motivos obvios; mas
Experimente
Código: Selecionar todos
Private Sub cboEmpresasS_Change()
ThisWorkbook.Worksheets(cboEmpresasS.Value).Activate
Range("Q5").Select
cboClienteNF.RowSource = cboEmpresasS.Value & "!AO5:AO80"
SaldoEmpKg = Application.WorksheetFunction.VLookup(cboEmpresasS, Range("AO5:AQ860"), 2, False)
SaldoEmpVr = Application.WorksheetFunction.VLookup(cboEmpresasS, Range("AO5:AQ860"), 3, False)
SaldoEmpKg = Format(SaldoEmpKg, "#,##0.00")
SaldoEmpVr = Format(SaldoEmpVr, "Currency")
End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord