Notifications
Clear all

Problema com nome do relatorio

12 Posts
3 Usuários
0 Reactions
2,364 Visualizações
(@gfsouza86)
Posts: 0
Trusted Member
Topic starter
 

Ola galera tudo bem?

O sistema que eu trabalho gera um relatório em excel e eu tenho que formatar esse relatório e para isso criei uma macro... até ai sem problema.
O problema ocorre porque esses relatórios vem com nomes aleatórios, tipo: Relatório 1, Relatório 2, Relatório 18, etc... e essa macro da erro pois criei ela em um relatório com numero 1, e toda vez que esse relatoria tem o nome do arquivo diferente de 1 ele dá erro.
Como consigo criar uma macro independente do nome do relatório gerado?

Desde já agradeço

G@b®!eL

Se a resposta foi útil para você, por gentileza, clique na mãozinha ao lado direito da sua tela no canto superior.

 
Postado : 29/07/2013 9:15 am
(@tacito)
Posts: 67
Trusted Member
 

Olá!

Se eu entendi bem, você tem o código no arquivo fo relatório mesmo, certo?

Se for isso, é só trocar o nome do arquivo "Workbooks("Nome_do_arquivo", ou número_do_arquivo)" por "Thisworkbook".

Se não estiver no arquivo do relatório ainda tem jeito, você pode usar o "Workbooks(número_do_arquivo)", mas aí eu não posso ajudar, porque nunca entendi como é feita a definição deste número.

Espero que tenha ajudado.

 
Postado : 29/07/2013 9:36 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

gf, quando postar alguma duvida, procure por o maximo de detalhes possiveis, alem da rotina que está utilizando, senão estaremos trabalhando com suposições.

O sistema que eu trabalho gera um relatório em excel
Qual Sistema ?

eu tenho que formatar esse relatório
Este relatório é gerado em varias abas ou arquivos separados ?

O problema ocorre porque esses relatórios vem com nomes aleatórios, tipo: Relatório 1, Relatório 2, Relatório 18...
Você está importando para o excel de algum outro tipo de arquivo ?
Os Nomes citados são dos arquivo ou Abas ?

[]s

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

 
Postado : 29/07/2013 10:05 am
(@gfsouza86)
Posts: 0
Trusted Member
Topic starter
 

Tacito não entendi aonde devo colocar esse nome que você me passou!

Mauro Coutinho desculpa por não ter explicado direito...
Segue as explicações:
- Qual Sistema ?
É um sistema interno da empresa desenvolvido internamente mesmo

-Este relatório é gerado em varias abas ou arquivos separados ?
O relatório é gerado em um único arquivo com uma planilha

-Você está importando para o excel de algum outro tipo de arquivo ?
Quando nosso sistema gera o arquivo em Excel ele já vem no formato .xls

-Os Nomes citados são dos arquivo ou Abas ?
Os nomes citados são dos arquivos gerados pelo sistema

Espero ter sido mais claro agora!

Obrigado novamente

G@b®!eL

Se a resposta foi útil para você, por gentileza, clique na mãozinha ao lado direito da sua tela no canto superior.

 
Postado : 29/07/2013 12:29 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

gf, demos mais um passo, mas ainda não da para se criar algo.

Pelo que entendi, o sistema gera arquivos XLS com nomes Relatorio.

Quando perguntei sobre a importação, é para entender, se você esta abrindo estes arquivos atraves de outro arquivo excel e aplicando a formatação, se não, como está fazendo.

Coloque qual a rotina (Macro) está utilizando.

[]s

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

 
Postado : 29/07/2013 1:54 pm
(@gfsouza86)
Posts: 0
Trusted Member
Topic starter
 

Mauro Coutinho quando o nosso sistema gera o relatório eu abro ele formato e salvo com outro nome, por exemplo, foi gerado o "Relatório 1" eu abro o arquivo, formato como quero e depois salvo por exemplo como "Relatório de mensagens".
A macro que eu criei ficou assim:

Sub formatar()
'
' formatar Macro
'

'
    Rows("1:1").Select
    Selection.Delete Shift:=xlUp
    Cells.Select
    Selection.Font.Size = 10
    With Selection
        .HorizontalAlignment = xlCenter
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    With Selection
        .HorizontalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    With Selection.Font
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
    End With
    Range("B2").Select
    ActiveWorkbook.Worksheets("RelatorioGerencial 1 ").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("RelatorioGerencial 1 ").Sort.SortFields.Add Key:= _
        Range("B2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("RelatorioGerencial 1 ").Sort
        .SetRange Range("A2:N29")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Selection.AutoFilter
End Sub

Obrigado novamente

G@b®!eL

Se a resposta foi útil para você, por gentileza, clique na mãozinha ao lado direito da sua tela no canto superior.

 
Postado : 30/07/2013 8:28 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Opa, mais um passo, de passo em passo logo terá a ajuda ideal.

quando o nosso sistema gera o relatório eu abro ele formato e salvo com outro nome
Ok, e onde exatamente está está a Macro que utiliza ?

Veja bem, por isso que as informações de passo a passo são importantes, para podermos seguir uim organograma :

1º )Sistema Gerou um Arq xls de nome Relatorio 1, ..2 ...3..
2º ) Tenho de Abrir estes arquivos
3º ) Aplicar a formatação
4º )Salvar com outro nome.

Se tivermos as informações corretas, poderiámos estar criando um arquivo Base com as seguintes rotinas :
Ações a serem executadas pelo arquivo Base :
1º ) Abrir Caixa de Dialogo para escolher o Arquivo a Abrir
2º ) Rotina para aplicar a Formatação e Salvar com outro Nome

Acima, apenas uma das inumeras possibilidades, podemos deixar mais automatizado possível, se tivermos informações do tipo :
Em qual Pasta são Armazenados os Arquivos Gerados ? Podemos deixar definido diretamente na rotina
Após a aplicação da Formatação e Salvar com outro Nome, devemos excluir o arquivo anterior ?

Espero que com o exposto acima, tenhamos mais um passo a caminhar.

[]s

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

 
Postado : 30/07/2013 8:47 am
(@gfsouza86)
Posts: 0
Trusted Member
Topic starter
 

Mauro Coutinho eu salvei ela para usar em todos os arquivos do Excel e coloquei um botão na barra de ferramentas.
Os arquivos gerados são salvos em uma pasta referente a data das mensagens enviadas, não é uma pasta única!
O arquivo que é gerado não é salvo logo de imediato, ele abre no Excel e somente se eu quiser eu salvo ele.
Como o relatório é extenso esse botão seria mesmo só para formatar pois é o que pode demorar mais para fazer ai na hora de salvar eu verifico a data e salvo na pasta correspondente!

G@b®!eL

Se a resposta foi útil para você, por gentileza, clique na mãozinha ao lado direito da sua tela no canto superior.

 
Postado : 30/07/2013 9:15 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Contribuindo.
Ao "gravar" a macro, ficou fixo o nome da sheet "RelatorioGerencial 1 ", então como disse que há somente uma unica sheet no arquivo, altere a linha onde aparece:

ActiveWorkbook.Worksheets("RelatorioGerencial 1 ")
Para
ActiveWorkbook.Worksheets(1)
assim estará sempre utilizando a primeira sheet do arquivo(planilha) ativa.
Nota: A range para "ordenar" os dados está fixa em -->SetRange Range("A2:N29"); se os arquivos gerados excederem essa range, talvez o ordenamento fique , vamos dizer, manco

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

 
Postado : 30/07/2013 11:52 am
(@gfsouza86)
Posts: 0
Trusted Member
Topic starter
 

Reinaldo substitui a linha que você me falou e até agora não esta dando erro.
A única coisa que fica "manca" igual você disse é a classificação alfabética... tem como resolver isso?

G@b®!eL

Se a resposta foi útil para você, por gentileza, clique na mãozinha ao lado direito da sua tela no canto superior.

 
Postado : 31/07/2013 6:40 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Somente o numero de linhas altera ou também a quantidade de colunas é variável.
Se for somente o numero de linhas experimente alterar na linha:
de:--> .SetRange Range("A2:N29")
Para:-->.SetRange Range("A2:N1000")

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

 
Postado : 31/07/2013 9:11 am
(@gfsouza86)
Posts: 0
Trusted Member
Topic starter
 

Reinaldo muito obrigado pelo ajuda..... esta funcionando sem dar erro!
Valeu mesmo!

G@b®!eL

Se a resposta foi útil para você, por gentileza, clique na mãozinha ao lado direito da sua tela no canto superior.

 
Postado : 01/08/2013 1:52 pm