Página 1 de 1

Ajuda - Text Box para inserir data e execultar macro

Enviado: Seg Abr 09, 2012 4:19 pm
por lucas.caetano
Tenho a seguinte macro abaixo: ela abre 02 relatorios diarios chamados (Acio) depois a macro joga numa matriz para calculo. Gostaria da ajuda para criar um userform onde eu inserrise a data (marcada de vermelho no codigo abaixo) ,e ao inves de ter que entrar no VBA e mudar manualmente todos os dias, gostaria de saber se existe a possibilidade de criar um userform onde ao especificar a Data respectiva ele rodasse a macro abaixo,

Sub abre_acio_diario()
ChDir _
"G:\MSS_GR\Publica\Atividades em Desenvolvimento\Leandro\Monitoramento\Relatório Acio\2012-04\Diário"
Workbooks.Open Filename:= _
"G:\MSS_GR\Publica\Atividades em Desenvolvimento\Leandro\Monitoramento\Relatório Acio\2012-04\Diário\ACIO_08042012_08042012.xlsx"
Range("A2:AG2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Matriz para indicadores Diários-Monitoramento.xlsm").Activate
Sheets("Dados do Acio").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Workbooks.Open Filename:= _
"G:\MSS_GR\Publica\Atividades em Desenvolvimento\Leandro\Monitoramento\Relatório Acio\2012-04\Diário\ACIO_08042012_08042012.xlsx"
ActiveWorkbook.Close

End Sub

Re: Ajuda - Text Box para inserir data e execultar macro

Enviado: Qua Mai 02, 2012 2:47 pm
por Joilson
Lucas,

Isto é mais fácil do que você imagina, a própria ajuda do Excel as vezes é bastante útil e este caso você poderia ter resolvido buscando esta ajuda. Mas orientações a parte vamos ao caso.

Vou utilizar apenas uma linha do código:
'Entre no Editor VBE e altere conforme mostrado abaixo, utilizei como referencia a celula A1, mas pode ser alterada para a célula que melhor lhe atender, desta maneira 'você não terá que abrir o código para alterar a data, a macro irá utilizar a descrição que for colocada na celula A1. O uso do "&" serve para concatenar informações.

Código: Selecionar todos

Sub abre_acio_diario()
ChDir _
"G:\MSS_GR\Publica\Atividades em Desenvolvimento\Leandro\Monitoramento\Relatório Acio\2012-04\Diário"
Workbooks.Open Filename:= _
"G:\MSS_GR\Publica\Atividades em Desenvolvimento\Leandro\Monitoramento\Relatório Acio\2012-04\Diário\" & Range("A1").Value  & ".xlsx"
Range("A2:AG2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Matriz para indicadores Diários-Monitoramento.xlsm").Activate
Sheets("Dados do Acio").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Workbooks.Open Filename:= _
"G:\MSS_GR\Publica\Atividades em Desenvolvimento\Leandro\Monitoramento\Relatório Acio\2012-04\Diário\ACIO_08042012_08042012.xlsx"
ActiveWorkbook.Close

End Sub

Re: Ajuda - Text Box para inserir data e execultar macro

Enviado: Ter Mai 22, 2012 6:47 pm
por lucas.caetano
Boa Tarde,

Obrigado pelas Dicas, foram excelentes o planilha ficou muito boa, incrível!!!

Gostaria de aproveitar e tirar mais uma Duvida.

Tenho uma planilha com 50 Abas, numeradas de 1 a 50 todas com formatação, e informação iguais , gostaria de saber se existe a possibilidade por exemplo de criar uma macro, acionada por um botão para deletar as informações.
Ex. das células (A1: M50) das Abas 10 até a Aba 40.

Precisaria desta informação pois tenho uma planilha com nomes que munda constantemente, portante se tivesse uma solução facilitaria muito o trabalho
consigo fazer a macro porem tenho que replicar, Aba por Aba chamando a macro para cada nome, se conseguisse essa variável facilitaria muito o trabalho.
Desde já agradeço a competência e rapidez nas respostas.

Lucas Lorenti

Re: Ajuda - Text Box para inserir data e execultar macro

Enviado: Ter Mai 22, 2012 10:33 pm
por Mauro Coutinho
lucas, associe a rotina abaixo ao seu Botão :

Código: Selecionar todos

Sub LimpaRanges()

    Dim sWsh
    
    sWsh = 10 'Inicia na Aba de numero 10
    
    While sWsh < 41'Enquanto for menos que 40
        
        'Limpa o Conteudo
        Worksheets(sWsh).Range("A1:M50").ClearContents
        
        sWsh = sWsh + 1
    
    Wend

End Sub
Como as Abas são numeradas, a contagem começa na Aba 10 até a 40 e limpa o Range determinado em cada uma delas.

[]s

Re: Ajuda - Text Box para inserir data e execultar macro

Enviado: Qua Mai 23, 2012 8:55 am
por LEANDRO ALVES
Ponto para o Mauro Coutinho :lol:

Lucas, eu não sou moderador aqui do fórum mas mesmo assim quero te lembrar que não é bom repetir tópicos em vários fóruns ao mesmo tempo.
Eu observei que você está tratando esta dúvida tanto aqui no "VBA Básico" como no "Freelancers e Serviços". Eu penso que o local ideal é aqui mesmo, pois Freelancers é uma espaço para negociações. Eu não falei nada antes porque a sua dúvida estava somente lá, como postou aqui achei por bem te informar. Então para manter a organização do fórum, se aparecer mais alguma dúvida referente a este tópico favor postar aqui. OK? ;)

Qualquer coisa posta aí. :D
Abraços e sucesso no seu projeto.

Re: Ajuda - Text Box para inserir data e execultar macro

Enviado: Qui Mai 24, 2012 9:48 am
por lucas.caetano
Muito obrigado!! pelas dicas

Re: Ajuda - Text Box para inserir data e execultar macro

Enviado: Qui Mai 24, 2012 9:57 am
por lucas.caetano
Obrigado Mauro Coutinho,

Só mais uma duvida, dei o exemplo da planilha com Abas de 1 a 50.
Entretanto, cada aba tem um nome especifico, Ex. Maria, joão, paulo, ricardo, bruno..... são 50 nomes como ficaria a variável desta forma???
lembrando que por exemplo preciso deletar as informações contidas nas células nas abas entre joao e bruno exemplo.

Re: Ajuda - Text Box para inserir data e execultar macro

Enviado: Qui Mai 24, 2012 10:53 am
por lucas.caetano
Consegui hehehe!!! basta fazer inserir abas numeradas entre os nomes, que a variavel entende e deleta tudo que estiver entre 10 e 40 por exemplo hehee.. muito legal a MAcro.

Só nao entendi oque é Wend???

Sub LimpaRanges()
Dim sWsh
sWsh = 10 'Inicia na Aba de numero 10
While sWsh < 41'Enquanto for menos que 40
'Limpa o Conteudo
Worksheets(sWsh).Range("A1:M50").ClearContents

sWsh = sWsh + 1
Wend
End Sube