Ir para conteúdo
Fórum Script Brasil
  • 0

Macro com referência


paulod3

Pergunta

Pessoal, sou iniciante em VBA..

Seguinte.. tenho uma pasta chamada 2015, dentro dela 12 pastas com os respectivos meses (janeiro, fevereiro..etc....)

Dentro da pasta de cada mês tenho 40 planilhas, cada uma representa uma filial por exemplo. Quando fecha o mês rodo uma macro que vai na pasta, entra filial por filial e capta todas as informações para uma base só.

Problema: todo mês tenho que entrar lá na macro dar um "substituir todos" os textos de "Junho" para "Julho".. para a macro pegar as 40 planilha da pasta certa (mês).

Existe alguma maneira de nesta planilha que consolida as informações tem uma célula de referência onde o escreva o mês e a macro já busque as informações da pasta certa?

 

Obrigado!!!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Existir existe, mas seria preciso dar mais detalhes sobre o problema. Por exemplo, o termo "pasta" a que você está utilizando se refere a uma pasta no computador (C:\Documentos\2015)? O termo planilha se refere a um arquivo xls/xlsx ou a uma "aba" de um arquivo xls/xlsx? Você não explicita em que arquivo (xls/xlsx) a macro é executada. E seria necessário ter acesso ao código da macro para saber onde ela deveria ser feita a alteração. Se você puder explicar melhor o problema e disponibilizar arquivos com a estrutura das planilhas e o código da macro vai facilitar bastante a resolver o teu problema...

Link para o comentário
Compartilhar em outros sites

  • 0
    Workbooks.Open Filename:= _
        "C:\DOCUMENTOS\2015\07 - Julho\FILIAL01.xlsx"
    Sheets("Indicador Mensal").Select
    Range("F24:Q24").Select
    Selection.Copy
    Windows("Consolidação.xlsm").Activate
    Range("D4:O4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Windows("FILIAL01.xlsx").Activate
    ActiveWindow.Close False

Sim, foi feita por gravação, acima código, ele se repete 40 vezes mudando para filial02, filial03..etc.

Muda também, "Range("D4:O4").Select" que é o destino onde colo na consolidada.

 

Preciso que haja uma célula na planilha onde eu mude o texto de Junho para Julho e todas as linhas atualizem..

    Workbooks.Open Filename:= _
        "C:\DOCUMENTOS\2015\07 - Julho\FILIAL01.xlsx"

desde já obrigado.

 

Editado por paulod3
incluído o agradecimento xD
Link para o comentário
Compartilhar em outros sites

  • 0


Você pode criar uma variável para armazenar o número e o nome do mês:

    Dim strMes as String

Atribuir à variável o valor de uma célula:
 
    strMes = Application.Workbooks("Consolidação.xlsm").Worksheets([nome da         planilha]).Range([referência da célula que contém o mês])

E substituir a instrução:

    Workbooks.Open Filename:= "C:\DOCUMENTOS\2015\07 - Julho\FILIAL01.xlsx"

Por:

    Workbooks.Open Filename:= "C:\DOCUMENTOS\2015\" & strMes  & "\FILIAL01.xlsx"


Para evitar ter que digitar o texto no formato "01 - Janeiro", eu sugeriria criar uma lista de validação com a sequência de todos os meses. Assim, não haveria erro de digitação, o que poderia "travar" a macro.

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...