Notifications
Clear all

unir duas macros

8 Posts
4 Usuários
0 Reactions
2,949 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite a todos!
Tenho duas macros e preciso junta-las para serem executadas em um unico botao!

Sub Macro2()
'
' Macro2 Macro
'

'
ActiveWorkbook.Worksheets("ANUAL").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("ANUAL").Sort.SortFields.Add Key:=Range("N2"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("ANUAL").Sort
.SetRange Range("B2:N16")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B1").Select
End Sub

Sub email()
' selecão da planilha desejada.
Plan2.Select
Cells.Select

' como o envelope na ActiveWorkbook.
ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope
.Introduction = "controle de missao"
.Item.To = "[email protected]" ' [email protected]
.Item.Subject = "Missoes"
.Item.send
End With
[D1].Select
End Sub

Outra coisa que gostaria de saber, é como poderia fazer para que execute ambos comandos quando fechasse o arquivo ou mesmo abri-lo!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 23/09/2013 4:21 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Ponha o código dentro de Estapasta_de_Trabalho (dentro do editor VB)

Option Explicit
'Quando for aberto, as macros serão executadas
Private Sub Workbook_Open()
Call Email
Call Macro2
End Sub

'Quando for fechado, as macros serão executadas
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call Email
    Call Macro2
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 23/09/2013 7:09 pm
(@angelobuso)
Posts: 3
New Member
 

gostaria de unir tb estas macros:

Sub Macro1()
'
' Macro1 Macro
'

'
ActiveSheet.Shapes("Sao Paulo").Select
'Selection.ShapeRange.PictureFormat.TransparentBackground = True

Selection.ShapeRange.PictureFormat.ColorType = msoPictureWatermark
Selection.ShapeRange.PictureFormat.Brightness = 0.5
'Selection.ShapeRange.Fill.BackColor.RGB = RGB(255, 45, 50)

'.ShapeRange.repaint.ForeColor.RGB = RGB(255, 45, 50)

End Sub

Sub Escala_Color()

'declara variaveis
Dim NLinhas As Integer, x As Integer
NLinhas = Application.WorksheetFunction.CountA(Sheets(1).Range("A:A")) - 1 'conta a quantidade de linhas preenchidas,
'menos total geral

'calcula dados
Application.Calculate

'loop: para cada linha, iniciando de 2:
For x = 2 To NLinhas

With Sheets(1).Shapes(Sheets(1).Range("A" & x))

.Fill.ForeColor.RGB = RGB(Color_to_RGB(Sheets(1).Range("D" & x).Value, "R"), _
Color_to_RGB(Sheets(1).Range("D" & x).Value, "G"), _
Color_to_RGB(Sheets(1).Range("D" & x).Value, "B"))

End With

Next x

End Sub

Function Ret_RGB_Cell(Celula As Range)

Ret_RGB_Cell = Celula.Interior.Color

End Function

Function Color_to_RGB(Color As Long, RGB As String)

Select Case RGB

Case "R"
Color_to_RGB = Color Mod 256
Case "G"
Color_to_RGB = (Color 256) Mod 256
Case "B"
Color_to_RGB = (Color 256 256) Mod 256

End Select
End Function

2° macro

Sub teste()
'
' teste Macro
'

'
Range("Q2").Select
ActiveCell.FormulaR1C1 = "=Ret_RGB_Cell(RC[-1])"
Range("Q3").Select
ActiveCell.FormulaR1C1 = "=Ret_RGB_Cell(RC[-1])"
Range("Q4").Select
ActiveCell.FormulaR1C1 = "=Ret_RGB_Cell(RC[-1])"
Range("Q5").Select
End Sub

Como devo fazer?

 
Postado : 26/01/2018 1:40 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Sempre que vc quiser que uma macro rode dentro de outra é so usar

Call nome da segunda macro

Exemplo

Sub macro 1 ()

seu codigo

call macro 2
call macro 3
call macro n

end sub

Enfim seja quantas forem é só usar call nome da macro.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 27/01/2018 8:00 pm
(@angelobuso)
Posts: 3
New Member
 

não consigui....apresenta a seguinte mensagem

 
Postado : 29/01/2018 2:42 pm
(@jonatasjho)
Posts: 25
Eminent Member
 

Envie o arquivo em anexo por favor, ou um modelo parecido, para que possamos dar uma olhada.

 
Postado : 30/01/2018 11:53 am
(@angelobuso)
Posts: 3
New Member
 

Segue anexo

 
Postado : 30/01/2018 1:13 pm
(@jonatasjho)
Posts: 25
Eminent Member
 

O código está com outros erros. Mas chamei as macros na Macro1.

 
Postado : 30/01/2018 1:52 pm