Notifications
Clear all

Macro só funciona no modo depuração.

11 Posts
2 Usuários
0 Reactions
1,537 Visualizações
(@brandlipe)
Posts: 0
New Member
Topic starter
 

Amigos, preciso de vossa ajuda.

Preciso formatar o rodapé.
Tenho um código que está correto, porém, só funciona no modo depuração, ou seja, quando executo linha por linha.
Quando executo todo o código com "F5", a macro não funciona e também não da erro.
Já usei DoEvents e uma pausa na macro para dar tempo de carregar os dados mas mesmo assim não funciona.

Alguém pode me ajudar?

Segue o código:

Sub Rodape_Guias_Normais()

    Set WKBRDP = ActiveWorkbook.Sheets("CONTROLE")

    WKB.Activate
'Define a primeira parte do Rodapé
    PrimeiraLinha = WKB.Cells(9, 5)
    SegundaLinha = WKB.Cells(10, 5)
    TerceiraLinha = WKB.Cells(11, 5)
    QuartaLinha = WKB.Cells(12, 5)

'Define a Imagem do Rodapé
    Imagem = WKB.Cells(13, 5)

'Define dia e hora
    Dia = Format(CDate(Now), "DD/MM/YYY")
    Hora = Format(CDate(Now), "HH:MM:SS")


    Sheets("PR_TOTAL").Select
    Sheets(Array("PR_TOTAL", "PR_SUL", "PR_SPC", "PR_SPI", "PR_RJES", "PR_MGCO", _
        "PR_NONE", "PR_SPCO", "QT_TOTAL", "QT_SUL", "QT_SPC", "QT_SPI", "QT_RJES", _
        "QT_MGCO", "QT_NONE", "QT_SPCO")).Select
        
    Sheets("PR_TOTAL").Activate
    
    
    Application.PrintCommunication = False
        
  '  ActiveSheet.PageSetup.LeftFooterPicture.Filename = Imagem
        
With ActiveSheet.PageSetup

.LeftFooterPicture.Filename = Imagem
'Insere a PrimeiraLinha, pula linha, insere a SegundaLinha, pula linha, insere a TerceiraLinha, pua linha, inserere imagem, pula linha, insere QuartaLinha 
.LeftFooter = PrimeiraLinha & Chr(13) & SegundaLinha & Chr(13) & TerceiraLinha & Chr(13) & "&G" & Chr(13) & QuartaLinha
'Define pág atual e total
.CenterFooter = "Pág. &P de &N"
'Define a data e hora em que o arquivo será impresso
.RightFooter = "Impresso em: &D, &T"

   End With

End Sub
 
Postado : 03/06/2016 7:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O ideal seria ter anexado seu modelo de acordo com as regras do forum, só pela rotina e sem saber onde está o erro fica um pouco dificil.

Em uma analise rápida nas linhas que colocou, o primeiro erro que deve apresentar, independente da forma que está executando é referente a definição da ABA.

Nesta linha você está definindo, WKBRDP como sendo a aba CONTROLE :
Set WKBRDP = ActiveWorkbook.Sheets("CONTROLE")

e na sequencia está utilizando :
WKB.Activate
PrimeiraLinha = WKB.Cells(9, 5)

Ou seja, WKB não está referenciada e nem definida qual seria.
Então se não tem nenhuma outra rotina que esteja definindo o nome da aba associado a esta Variável (String), terá erro já na primeira instrução .Activate

[]s

 
Postado : 03/06/2016 7:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Por motivo obvio, não posso testar, mas experimente conforme alterado abaixo

Sub Rodape_Guias_Normais()

Set WKBRDP = ActiveWorkbook.Sheets("CONTROLE")

WKBRDP .Activate
'Define a primeira parte do Rodapé
PrimeiraLinha = WKB.Cells(9, 5)
SegundaLinha = WKB.Cells(10, 5)
TerceiraLinha = WKB.Cells(11, 5)
QuartaLinha = WKB.Cells(12, 5)

'Define a Imagem do Rodapé
Imagem = WKB.Cells(13, 5)

'Define dia e hora
Dia = Format(CDate(Now), "DD/MM/YYY")
Hora = Format(CDate(Now), "HH:MM:SS")

Sheets("PR_TOTAL").Activate
Sheets(Array("PR_TOTAL", "PR_SUL", "PR_SPC", "PR_SPI", "PR_RJES", "PR_MGCO", _
"PR_NONE", "PR_SPCO", "QT_TOTAL", "QT_SUL", "QT_SPC", "QT_SPI", "QT_RJES", _
"QT_MGCO", "QT_NONE", "QT_SPCO")).Select

Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftFooterPicture.Filename = Imagem
'Insere a PrimeiraLinha, pula linha, insere a SegundaLinha, pula linha, insere a TerceiraLinha, pua linha, inserere imagem, pula linha, insere QuartaLinha
.LeftFooter = PrimeiraLinha & Chr(13) & SegundaLinha & Chr(13) & TerceiraLinha & Chr(13) & "&G" & Chr(13) & QuartaLinha
'Define pág atual e total
.CenterFooter = "Pág. &P de &N"
'Define a data e hora em que o arquivo será impresso
.RightFooter = "Impresso em: &D, &T"
End With
    Application.PrintCommunication = True
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
WKBRDP.Select
End Sub
 
Postado : 03/06/2016 7:53 am
(@brandlipe)
Posts: 0
New Member
Topic starter
 

Me desculpe, segue o arquivo.

A intenção é rodar esse arquivo todos os dias e o rodapé atualizar com as datas.

 
Postado : 03/06/2016 8:30 am
(@brandlipe)
Posts: 0
New Member
Topic starter
 

Esqueci de renomear as guias que comtém VICOM é só substiruir VICOM por BR

 
Postado : 03/06/2016 8:34 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Por este modelo que enviou, já arrumado a Variável que comentamos acima referente a definição da Aba e alterando o nome como você disse, funcionou normalmente, os únicos ajustes que tive de fazer, foi ajustar somente o endereço (Path) do local da imagem, e desabilitar a propriedade "Application.PrintCommunication = False" que pelo que li só é compátivel com o excel 2010.
Qual versão do excel está utilizando ?

[]s

 
Postado : 03/06/2016 11:37 am
(@brandlipe)
Posts: 0
New Member
Topic starter
 

Mauro, muito obrigado.

Apenas desativei 'Application.PrintCommunication = False.

Funcionando que é uma beleza.

 
Postado : 03/06/2016 12:13 pm
(@brandlipe)
Posts: 0
New Member
Topic starter
 

Mauro,

De fato o rodapé está atualizando, porém, atualiza apenas a primeira página. As demais permanecem com o valor anterior.

Estou utilizando a versão 2010.

 
Postado : 03/06/2016 12:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

No momento estou atarefado, se não tiver uma solução, mais tarde a noite dou uma olhada em casa.

 
Postado : 03/06/2016 1:23 pm
(@brandlipe)
Posts: 0
New Member
Topic starter
 

Amigos, ainda não consegui ajustar o código.

Alguém pode me ajudar?

 
Postado : 07/06/2016 6:23 am
(@brandlipe)
Posts: 0
New Member
Topic starter
 

Rapaziada, consegui resolver o problema.

Criei um loop para navegar entre as guias e formatar guia por guia ao invés de selecionar e configurar todas de uma só vez.

O processo está demorando 2 minutos a mais, porém, funcionando bem.

 
Postado : 16/06/2016 7:49 am