Jump to content
Fórum Script Brasil
  • 0

Macro com referência


paulod3
 Share

Question

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 to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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.

 

Edited by paulod3
incluído o agradecimento xD
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647k
×
×
  • Create New...