Notifications
Clear all

Rotina não funciona

7 Posts
2 Usuários
0 Reactions
1,542 Visualizações
(@bautto)
Posts: 0
New Member
Topic starter
 

Colegas, Bom 2015 para todos !!

Tenha uma planilha como o exemplo anexo, em que na aba "diário" devem ser capturados os valores nas colunas "G" e "H", linha 6 e coladas na aba "Evol_Dia", nas colunas "C" e "D", sempre na linha abaixo do dia anterior.
Para tanto, tenho as rotinas que estão disponíveis nos módulos 1 e 3 do VBA, na planilha.
Uso sempre a planilha do ano anterior, copiando para o ano seguinte.
Ocorre que não funcionou e recebi a mensagem de que "talvez a rotina não esteja disponível...."
Alguém pode me ajudar, por favor?
Agradeço a atenção.

 
Postado : 08/01/2015 3:21 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Veja se as macros por algum motivo foram desabilitadas, eu não tive problemas!

Lembre se só há 1 macro SaldoDia, os outros módulos estão vazios!

Talvez o botão esteja designado com um nome de macro e a real maccro com outro nome, ou então, as macros foram deletas.

Att

 
Postado : 08/01/2015 3:29 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A rotina presente no modulo 1 copia a range G3:H3 da planilha Diario, para a primeira linha depois do ultimo registo;
Porem na planilha Evol_Dia essa range está sem valores, então está copiando nada.
Verifique se houve alteração no layout da planilha evolução, pois as celula H2 está mesclada com H3 e I2 mesclada com I3; porem o VBA não "enxerga" essa mescla e os valores estão em G2 e I2.

 
Postado : 08/01/2015 4:39 pm
(@bautto)
Posts: 0
New Member
Topic starter
 

Colegas, boa tarde.
Agradeço as respostas.

Vou tentar falar com Alexandrevba e Reinaldo ao mesmo tempo:

Alexandre: Não tenho botões para executar a rotina, ela deve rodar na hora fixada (17:25). Assim, penso não haver interferência dos módulos em branco.
Aliás, não sei como eliminá-los, pois realmente não são úteis. Sabe me dizer como apagar esse módulos vazios?

Reinaldo: A Range de origem é "diário" G6:H6 e deve ser copiada para a primeira linha vazia em "Evol_Dia" "C" e "D", que não são mescladas. Portanto, penso não ser este o motivo de não funcionar.

Agora, pergunto se a localização dos módulos está correta, pois o "Workbook_Open" está em "Esta pasta de trabalho" , mas no módulo da sub "SaldoDia", não está identificada a aba "Diário", como o local onde iniciará a rotina.

Agradeço a ajuda.

 
Postado : 09/01/2015 9:06 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Quanto.

Alexandre: Não tenho botões para executar a rotina, ela deve rodar na hora fixada (17:25). Assim, penso não haver interferência dos módulos em branco.
Aliás, não sei como eliminá-los, pois realmente não são úteis. Sabe me dizer como apagar esse módulos vazios?

Click com o botão direito Remover Módulo ....., vai abrir uma caixa, perguntando se você deseja exporta o módulo, click em não.

Att

 
Postado : 09/01/2015 9:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se é G6:H6 então na rotina/macro a range está errada, deve ser corrigida.
No meu entender deveria ser

Sub SaldoDia()
'
' SaldoDia Macro
' Registra o saldo das carteiras no final do dia
'
Dim UltimaLinha As Long

UltimaLinha = Sheets("Evol_Dia").Cells(Cells.Rows.Count, 2).End(xlUp).Row + 1

If UltimaLinha < 4 Then UltimaLinha = 4
        
Sheets("Diário").Select
Range("G6:H6").Select
Selection.Copy
Sheets("Evol_Dia").Select
Sheets("Evol_Dia").Range("B" & UltimaLinha).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                            :=False, Transpose:=False
     
Range("A1:G1").Select
Sheets("Diário").Select
Range("A1").Select
ActiveWorkbook.Save
ActiveWorkbook.Close
     
End Sub

 
Postado : 09/01/2015 1:18 pm
(@bautto)
Posts: 0
New Member
Topic starter
 

Reinaldo, boa tarde.
Vc. tem razão, estava errado mesmo. Deve ter sido no momento em que fiz a cópia. Já corrigi e está funcionando.
Grato pela ajuda.

 
Postado : 13/01/2015 12:52 pm