Página 1 de 1

Como usar o mesmo código em Sheets diferentes?

Enviado: 04 Fev 2020 às 11:25
por Diego100ges
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:
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






Como usar o mesmo código em Sheets diferentes?

Enviado: 04 Fev 2020 às 12:15
por eduardogrigull
Veja se resolve. Eu fiz de um modo em que quando voce der a call na Sub, voce tenha que especificar qual planilha quer que o código seja executado :D
Código: Selecionar todos
Sub TrasTarifas(Planilha As String)
Application.ScreenUpdating = False
On Error Resume Next
Sheets(Planilha).Activate
Distribuidora = Sheets(Planilha).Range("J17")
Modalidade = Sheets(Planilha).Range("AG23")
Data = Sheets(Planilha).Range("AN1")
If Sheets(Planilha).Range("AB23") = "A3A" Or Sheets(Planilha).Range("AB23") = "A3a" Then
    Subgrupo = "A4"
        Else
            Subgrupo = Sheets(Planilha).Range("AB23")
        End If
Chave = Distribuidora & "-" & Modalidade & "-" & Data & "-" & Subgrupo
Chave2 = Distribuidora & "-" & "Verde" & "-" & Data & "-" & Subgrupo
Chave5 = Distribuidora & "-" & "Azul" & "-" & Data & "-" & Subgrupo
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CASO HAJA RESOLUÇÃO
DataResolucao = Sheets(Planilha).Range("G25")
MesReh = Month(DataResolucao)
AnoReh = Year(DataResolucao)
MesDataCofenrir = Month(Data)
AnoDataConferir = Year(Data)
Sheets(Planilha).Range("an3") = MesReh
Sheets(Planilha).Range("an4") = AnoReh
Sheets(Planilha).Range("an5") = MesDataCofenrir
Sheets(Planilha).Range("an6") = AnoDataConferir
Sheets(Planilha).Range("an7") = DataResolucao
If Sheets(Planilha).Range("an3") = Sheets(Planilha).Range("an5") And Sheets(Planilha).Range("an4") = Sheets(Planilha).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
    Sheets(Planilha).Range("H23") = TarifaDemPontaPonderada
    Sheets(Planilha).Range("H24") = TarifaDemFPontaPonderada
    Sheets(Planilha).Range("M23") = TarifaEnergiaPontaPonderada
    Sheets(Planilha).Range("M24") = TarifaEnergiaFPontaPonderada
    Sheets(Planilha).Range("R23") = TarifaEncargoPontaPonderada
    Sheets(Planilha).Range("R24") = TarifaEncargoFPontaPonderada
    Sheets(Planilha).Range("W23") = TarifaEncargoPonta2Ponderada
    Sheets(Planilha).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)
Sheets(Planilha).Range("H23") = DemandaPonta
Sheets(Planilha).Range("H24") = DemandaFPonta
Sheets(Planilha).Range("M23") = EnergiaPonta
Sheets(Planilha).Range("M24") = EnergiaFPonta
Sheets(Planilha).Range("R23") = EncargoPonta
Sheets(Planilha).Range("R24") = EncargoFPonta
Sheets(Planilha).Range("W23") = Encargo2Ponta
Sheets(Planilha).Range("W24") = Encargo2FPonta
End If
Application.ScreenUpdating = True
End Sub