Como usar o mesmo código em Sheets diferentes?
Enviado: 04 Fev 2020 às 11:25
Pessoal, boa tarde.
Preciso de ajuda com um código, eu montei ele pra ser usado em uma Sheet, mas agora existe a necessidade de duplicar essa mesma sheet no mesmo workbook, porém quando executa o código ele volta pra sheet original, e não funciona na cópia, como posso contornar isso, sem ter que duplicar o código?
segue código:
Preciso de ajuda com um código, eu montei ele pra ser usado em uma Sheet, mas agora existe a necessidade de duplicar essa mesma sheet no mesmo workbook, porém quando executa o código ele volta pra sheet original, e não funciona na cópia, como posso contornar isso, sem ter que duplicar o código?
segue código:
Código: Selecionar todos
Sub TrasTarifas()
Application.ScreenUpdating = False
On Error Resume Next
Plan5.Activate
Distribuidora = Plan5.Range("J17")
Modalidade = Plan5.Range("AG23")
Data = Plan5.Range("AN1")
If Plan5.Range("AB23") = "A3A" Or Plan5.Range("AB23") = "A3a" Then
Subgrupo = "A4"
Else
Subgrupo = Plan5.Range("AB23")
End If
Chave = Distribuidora & "-" & Modalidade & "-" & Data & "-" & Subgrupo
Chave2 = Distribuidora & "-" & "Verde" & "-" & Data & "-" & Subgrupo
Chave5 = Distribuidora & "-" & "Azul" & "-" & Data & "-" & Subgrupo
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CASO HAJA RESOLUÇÃO
DataResolucao = Plan5.Range("G25")
MesReh = Month(DataResolucao)
AnoReh = Year(DataResolucao)
MesDataCofenrir = Month(Data)
AnoDataConferir = Year(Data)
Plan5.Range("an3") = MesReh
Plan5.Range("an4") = AnoReh
Plan5.Range("an5") = MesDataCofenrir
Plan5.Range("an6") = AnoDataConferir
Plan5.Range("an7") = DataResolucao
If Plan5.Range("an3") = Plan5.Range("an5") And Plan5.Range("an4") = Plan5.Range("an6") Then
DataTarifaNova = DateAdd("m", 1, Data)
Chave3 = Distribuidora & "-" & Modalidade & "-" & DataTarifaNova & "-" & Subgrupo
If Modalidade = "Azul" Then
Chave2 = Distribuidora & "-" & "Verde" & "-" & Data & "-" & Subgrupo
Chave4 = Distribuidora & "-" & "Verde" & "-" & DataTarifaNova & "-" & Subgrupo
Else
Chave2 = Distribuidora & "-" & "Azul" & "-" & Data & "-" & Subgrupo
Chave4 = Distribuidora & "-" & "Azul" & "-" & DataTarifaNova & "-" & Subgrupo
End If
''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Tarifas atuais
TarifaEncargoPonta = Application.VLookup(Chave5, Sheets("Base de distribuidores").Range("Distribuidores"), 5, False)
TarifaEncargoFPonta = Application.VLookup(Chave5, Sheets("Base de distribuidores").Range("Distribuidores"), 6, False)
TarifaDemPonta = Application.VLookup(Chave5, Sheets("Base de distribuidores").Range("Distribuidores"), 9, False)
TarifaDemFPonta = Application.VLookup(Chave, Sheets("Base de distribuidores").Range("Distribuidores"), 10, False)
TarifaEnergiaPonta = Application.VLookup(Chave, Sheets("Base de distribuidores").Range("Distribuidores"), 13, False)
TarifaEnergiaFPonta = Application.VLookup(Chave, Sheets("Base de distribuidores").Range("Distribuidores"), 14, False)
TarifaEncargo2Ponta = Application.VLookup(Chave2, Sheets("Base de distribuidores").Range("Distribuidores"), 5, False)
TarifaEncargo2FPonta = Application.VLookup(Chave2, Sheets("Base de distribuidores").Range("Distribuidores"), 6, False)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'Tarifas novas
TarifaEncargoPontaNova = Application.VLookup(Chave3, Sheets("Base de distribuidores").Range("Distribuidores"), 5, False)
TarifaEncargoFPontaNova = Application.VLookup(Chave3, Sheets("Base de distribuidores").Range("Distribuidores"), 6, False)
TarifaDemPontaNova = Application.VLookup(Chave3, Sheets("Base de distribuidores").Range("Distribuidores"), 9, False)
TarifaDemFPontaNova = Application.VLookup(Chave3, Sheets("Base de distribuidores").Range("Distribuidores"), 10, False)
TarifaEnergiaPontaNova = Application.VLookup(Chave3, Sheets("Base de distribuidores").Range("Distribuidores"), 13, False)
TarifaEnergiaFPontaNova = Application.VLookup(Chave3, Sheets("Base de distribuidores").Range("Distribuidores"), 14, False)
TarifaEncargo2PontaNova = Application.VLookup(Chave4, Sheets("Base de distribuidores").Range("Distribuidores"), 5, False)
TarifaEncargo2FPontaNova = Application.VLookup(Chave4, Sheets("Base de distribuidores").Range("Distribuidores"), 6, False)
'''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Faz a diferença de dias para cada tarifa
DiasTarifaAntiga = DataResolucao - Data
CalculoDiasRestantes = (DateAdd("m", 1, DataResolucao)) - DataResolucao
DiasTarifanova = CalculoDiasRestantes - DiasTarifaAntiga
'''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Média Ponderada das Tarifas
TarifaEncargoPontaPonderada = ((TarifaEncargoPonta * DiasTarifaAntiga) + (TarifaEncargoPontaNova * DiasTarifanova)) / CalculoDiasRestantes
TarifaEncargoFPontaPonderada = ((TarifaEncargoFPonta * DiasTarifaAntiga) + (TarifaEncargoFPontaNova * DiasTarifanova)) / CalculoDiasRestantes
TarifaDemPontaPonderada = ((TarifaDemPonta * DiasTarifaAntiga) + (TarifaDemPontaNova * DiasTarifanova)) / CalculoDiasRestantes
TarifaDemFPontaPonderada = ((TarifaDemFPonta * DiasTarifaAntiga) + (TarifaDemFPontaNova * DiasTarifanova)) / CalculoDiasRestantes
TarifaEnergiaPontaPonderada = ((TarifaDEnergiaPonta * DiasTarifaAntiga) + (TarifaEnergiaPontaNova * DiasTarifanova)) / CalculoDiasRestantes
TarifaEnergiaFPontaPonderada = ((TarifaDEnergiaFPonta * DiasTarifaAntiga) + (TarifaEnergiaFPontaNova * DiasTarifanova)) / CalculoDiasRestantes
TarifaEncargoPonta2Ponderada = ((TarifaEncargo2Ponta * DiasTarifaAntiga) + (TarifaEncargo2PontaNova * DiasTarifanova)) / CalculoDiasRestantes
TarifaEncargoFPonta2Ponderada = ((TarifaEncargo2FPonta * DiasTarifaAntiga) + (TarifaEncargo2FPontaNova * DiasTarifanova)) / CalculoDiasRestantes
'''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Exibe a Tarifa Ponderada da Resolução
Plan5.Range("H23") = TarifaDemPontaPonderada
Plan5.Range("H24") = TarifaDemFPontaPonderada
Plan5.Range("M23") = TarifaEnergiaPontaPonderada
Plan5.Range("M24") = TarifaEnergiaFPontaPonderada
Plan5.Range("R23") = TarifaEncargoPontaPonderada
Plan5.Range("R24") = TarifaEncargoFPontaPonderada
Plan5.Range("W23") = TarifaEncargoPonta2Ponderada
Plan5.Range("W24") = TarifaEncargoFPonta2Ponderada
MsgBox ("TARIFAS PONDERADAS, MÊS DE REAJUSTE!!")
Else '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CASO NÃO HAJA RESOLUÇÃO
DemandaPonta = Application.VLookup(Chave5, Sheets("Base de distribuidores").Range("Distribuidores"), 9, False)
DemandaFPonta = Application.VLookup(Chave, Sheets("Base de distribuidores").Range("Distribuidores"), 10, False)
EnergiaPonta = Application.VLookup(Chave, Sheets("Base de distribuidores").Range("Distribuidores"), 13, False)
EnergiaFPonta = Application.VLookup(Chave, Sheets("Base de distribuidores").Range("Distribuidores"), 14, False)
EncargoPonta = Application.VLookup(Chave5, Sheets("Base de distribuidores").Range("Distribuidores"), 5, False)
EncargoFPonta = Application.VLookup(Chave5, Sheets("Base de distribuidores").Range("Distribuidores"), 6, False)
Encargo2Ponta = Application.VLookup(Chave2, Sheets("Base de distribuidores").Range("Distribuidores"), 5, False)
Encargo2FPonta = Application.VLookup(Chave2, Sheets("Base de distribuidores").Range("Distribuidores"), 6, False)
Plan5.Range("H23") = DemandaPonta
Plan5.Range("H24") = DemandaFPonta
Plan5.Range("M23") = EnergiaPonta
Plan5.Range("M24") = EnergiaFPonta
Plan5.Range("R23") = EncargoPonta
Plan5.Range("R24") = EncargoFPonta
Plan5.Range("W23") = Encargo2Ponta
Plan5.Range("W24") = Encargo2FPonta
End If
Application.ScreenUpdating = True
End Sub