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.
Por italo013
#35445
Pessoal, boa noite!

Queria a ajuda de vocês, não manjo nada de VBA to começando a estudar, mas preciso fazer uma macro que acione outra macro.

O problema é o seguinte, tenho uma planilha com 20 guias, em cada guia tem uma macro, no caso a macro que tem em cada guia é a mesma em todas, ou seja, 1 macro que é utilizada em todas as guias. Eu quero fazer uma macro que eu acione a macro de todas as guias ao mesmo tempo, porque do jeito que ta eu tenho que ir em cada guia e acionar a macro.

Desde já eu agradeço!
Por osvaldomp
#35452
Provavelmente utilizando somente uma macro ao invés de 20 seja possível fazer o trabalho em todas as planilhas do seu arquivo.

Sugestão - como os códigos que atuam nas 20 planilhas são iguais, disponibilize aqui uma cópia deles.
Por italo013
#35489
Bom segue a planilha que estou trabalhando, apaguei algumas guias por isso os #REF e #VALOR.

Bom, como pode ver, tem 20 guias, cada uma delas tem uma macro, é a mesma macro pra todas as guias. O que eu quero fazer é criar uma macro que "aperte" a macro de todas as guias ao mesmo tempo, sem que eu precise ir em cada uma dela e "aperte".

Isso, porque pra calcular o resultado da carteira (guia Resultado Carteira) eu tenho que primeiro ir na guia de cada fundo e "apertar" pra calcular a rentabilidade.

Deu pra entender?
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#35506
Substitua o código existente pelo código abaixo.
Este código será executado nas planilhas 1 a 20 e poderá ser rodado a partir de qualquer planilha do seu arquivo, no entanto, eu sugiro que você coloque um botão na planilha Resultado Carteira para rodá-lo. Não mais será necessário você acessar as planilhas de 1 a 20 para calcular a rentabilidade de cada uma, o código fará isso. Os botões "Calcula rentabilidade" existentes naquelas planilhas podem ser deletados.
Código: Selecionar todos
Sub calc_form_rent_fundo()
 Dim LR As Long, ws As Worksheet
  Application.Calculation = xlCalculationManual
   For Each ws In ThisWorkbook.Worksheets
    If ws.Name <> "Resultado Carteira" And ws.Name <> "Índices" Then
     LR = ws.Cells(Rows.Count, 2).End(3).Row
     ws.Range("B8:H8").AutoFill ws.Range("B8:H" & LR)
     ws.Range("B8:H" & LR).Value = ws.Range("B8:H" & LR).Value
     ws.Range("K8:N8").AutoFill ws.Range("K8:N" & LR)
     ws.Range("K8:N" & LR).Value = ws.Range("K8:N" & LR).Value
    End If
   Next ws
  'calc_form_rent_carteira
  Application.Calculation = xlCalculationAutomatic
End Sub
Sugiro que você também substitua o código atual que é executado na planilha Resultado Carteira pelo código abaixo. Você poderá executá-lo a partir do botão existente naquela planilha ou poderá executá-lo automaticamente ao final do código Sub calc_form_rent_fundo, bastando para isso remover o apóstrofo inicial da linha 'calc_form_rent_carteira que coloquei naquele código.
Código: Selecionar todos
Sub calc_form_rent_carteira()
 Dim LR As Long
  Application.Calculation = xlCalculationManual
   With Sheets("Resultado Carteira")
     LR = .Cells(Rows.Count, 1).End(3).Row
     .Range("A7:H7").AutoFill .Range("A7:H" & LR)
     .Range("A8:H" & LR).Value = .Range("A8:H" & LR).Value
   End With
  Application.Calculation = xlCalculationAutomatic
End Sub
dicas - a fórmula abaixo existente em C6 da planilha Resultado Carteira
Código: Selecionar todos
='1'!I7+'2'!I7+'3'!I7+'4'!I7+'5'!I7+'6'!I7+'7'!I7+'8'!I7+'9'!I7+'10'!I7+'11'!I7+'12'!I7+'13'!I7+'14'!I7+'15'!I7+'16'!I7+'17'!I7+'18'!I7+'19'!I7+'20'!I7
pode ser substituída por
Código: Selecionar todos
=SOMA('1:20'!I7)
e em E6 por
Código: Selecionar todos
 =SOMA('1:20'!K7)
pode arrastá-las para baixo se quiser
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