Notifications
Clear all

desabilitar msgbox quando inicia arquivo

12 Posts
3 Usuários
0 Reactions
1,817 Visualizações
(@juliowd)
Posts: 0
New Member
Topic starter
 

Olá. Estou precisando de um help num problema que tive relativo a migração de dados de uma planilha para outra.
O alexandrevba me ajudou com o código de migração de dados.
Porém, meu problema agora é outro. Por isso fiz um novo tópico.
É que quando eu abro o arquivo MODELO, ele verifica na célula A1 da ABA CAPA se ela está - ou não - vazia.
Se está vazia, ele faz uma pergunta, através de MSGBOX.

O problema é que quando eu vou fazer a transferencia de dados através deste código,

Sub AleVBA_12838()
        Dim wbMe As Workbook, wbOpen As Workbook
        Dim strSheet  As String
         
        strSheet = ActiveSheet.Name
        Set wbMe = ThisWorkbook
         
        ChDir "C:Sistema de administração financeira"
        Set wbOpen = Workbooks.Open _
        (Filename:="C:Sistema de administração financeiraMODELO Sistema de administração financeira.xlsm", Editable:=True)
    'Acima tem o nome do arquivo, mude o nome e a extenção se necessário
        wbMe.Sheets(strSheet).Range("F63:F285").Copy _
        Destination:=wbOpen.Sheets("anuidade").Range("J8:J230")

    End Sub 

ele faz a pergunta e não transfere mais nada.
O código funciona quando na célula A1 tem qualquer dado.
Não encontrei uma solução lógica para isso. Pois o evento de mandar a MSGBOX está ao entrar na planilha.
Será que teria uma solução?
Obrigado!!

 
Postado : 28/08/2014 7:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Poste o modelo com todo o código...
Não esqueça de compactar.

 
Postado : 28/08/2014 7:40 am
(@juliowd)
Posts: 0
New Member
Topic starter
 

o arquivo tem 26k.

E agora tem 23,5KB, quanto menor, melhor. Lembre-se, é regra do forum.

 
Postado : 28/08/2014 7:49 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Não sei se entendi corretamente a sua necessidade. Veja observação que inseri no código.

 
Postado : 28/08/2014 8:10 am
(@juliowd)
Posts: 0
New Member
Topic starter
 

Oi Wagner. Este arquivo que postei é o arquivo DESTINO.
O código do Alexandre se encontra no arquivo ORIGEM.
Então, eu clico em um botão no arquivo ORIGEM e ele vai até o arquivo DESTINO e insere as informações copiadas do arquivo ORIGEM.
O problema é que no arquivo DESTINO ele sempre fará essa pergunta ao abrir o arquivo.
Compreende?

 
Postado : 28/08/2014 8:14 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Acho que entendi...

Então, nesse caso, no código do Alexandre, se não for para o arquivo DESTINO apresentar a caixa de mensagem logo na abertura, a primeira coisa que você deve enviar para ele é a palavra "cópia" para a célula A1. Isso faz com que a caixa de mensagem não seja apresentada. Após você enviar essa palavra para a célula A1 do arquivo DESTINO, bem como os outros dados que devem ser enviados pelo código do Alexandre, se quiser que a caixa continue a ser apresentada se outro usuário for abrir o arquivo, você pode enviar outro comando, antes de encerrar a rotina, limpando a célula A1.

Isso poderia ser assim (para enviar dados):

Workbooks("Nome_do_arquivo_Destino).Sheets("nome_da_aba_que_receberá_as_informações").Range("A1").Value = "cópia"

E assim para limpar:

Workbooks("Nome_do_arquivo_Destino).Sheets("nome_da_aba_que_receberá_as_informações").Range("A1").Value = ""
 
Postado : 28/08/2014 8:44 am
(@juliowd)
Posts: 0
New Member
Topic starter
 

Oi Wagner. Não funcionou. Fiz como na imagem anexa.
Depois ele pintou de amarelo a linha

Workbooks("MODELO Sistema de administração financeira.xlsm").Sheets("capa").Range("A1").Value = "cópia"

Segue código full:

    Sub AleVBA_12838()
        Workbooks("MODELO Sistema de administração financeira.xlsm").Sheets("capa").Range("A1").Value = "cópia"

        Dim wbMe As Workbook, wbOpen As Workbook
        Dim strSheet  As String
         
        strSheet = ActiveSheet.Name
        Set wbMe = ThisWorkbook
         
        ChDir "C:Sistema de administração financeira"
        
        Set wbOpen = Workbooks.Open _
        (Filename:="C:Sistema de administração financeiraMODELO Sistema de administração financeira.xlsm", Editable:=True)
    'Acima tem o nome do arquivo, mude o nome e a extenção se necessário
        wbMe.Sheets(strSheet).Range("F63:F285").Copy _
        Destination:=wbOpen.Sheets("anuidade").Range("J8:J230")
        Workbooks("MODELO Sistema de administração financeira.xlsm").Sheets("capa").Range("A1").Value = ""
        Workbooks("MODELO Sistema de administração financeira.xlsm").Close
    End Sub

O que será que deu?

 
Postado : 28/08/2014 10:44 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Bom... nem sempre o depurador pára exatamente na linha onde está havendo o problema... Eu nunca nem vi esse tipo de erro.

No caso, o melhor a fazer é compactar seus dois arquivos e anexá-los aqui para que se possa baixar, rodar e depurar. Se forem muito grandes, pode tentar reduzí-los ao mínimo possível, excluindo dados.

 
Postado : 28/08/2014 10:53 am
(@juliowd)
Posts: 0
New Member
Topic starter
 

vamos lá então....
o arquivo MODELO é o arquivo destino.
quando os dados foram colados no arquivo DESTINO,
tem possibilidade de ir apenas os dados? (para que não tenha vínculo de formulas entre os dois arquivos)

Obrigado!!

 
Postado : 28/08/2014 11:30 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

É amigo... infelizmente, essa eu não consegui resolver. Talvez seja interessante você fechar esse tópico e abrir outro somente com essa demanda para ver se outros integrantes do fórum (e tem muita gente boa, fera em VBA) entram com uma solução.

 
Postado : 28/08/2014 12:30 pm
(@juliowd)
Posts: 0
New Member
Topic starter
 

tranquilo então!!
Vou abrir outro tópico!
Obrigado Wagner!!

 
Postado : 28/08/2014 12:40 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Desligue os eventos antes de abrir, e religue-os depois de abrir...

application.enableevents = false

application.enableevents = true

 
Postado : 28/08/2014 1:40 pm