Página 1 de 1

Executar apenas parte de uma macro

Enviado: 04 Mar 2019 às 11:04
por Mally
Bom dia,

Gostaria de saber se tem alguma forma de fazer com que um botão execute apenas uma parte de um macro. Abaixo um exemplo simplificado (só pra entender a questão):

O botão 1 deve executar:
Sub Ex_1 ()
Range("A1:E10").ClearContents
Range("Z1").Copy Range("A1:A10")
Range("Z2").Copy Range("C1:C10")
End sub
E o botão 2 deve executar:
Sub Ex_2 ()
Range("Z1").Copy Range("A1:A10")
End sub
E o botão 3:
Sub Ex_3 ()
Range("Z2").Copy Range("C1:C10")
End sub
Queria saber se tem como fazer com que o botão 2 e 3 usem as partes que precisam do macro Ex_1, sem precisar criar Ex_2 e Ex_3.

O exemplo acima é bem simplificado, mas a coisa fica bem chata quando você tem dezenas de macros complexos repetidos e precisa fazer alguma alteração.

Re: Executar apenas parte de uma macro

Enviado: 07 Mar 2019 às 11:28
por osvaldomp
Experimente:
Código: Selecionar todos
Sub Teste1()
 Select Case ActiveSheet.Shapes(Application.Caller).Name
  Case "Button 2"
   Range("Z1").Copy Range("A1:A10")
  Case "Button 3"
   Range("Z2").Copy Range("C1:C10")
 End Select
End Sub