Notifications
Clear all

desabilitar msgbox quando inicia arquivo

12 Posts
3 Usuários
0 Reactions
1,831 Visualizações
(@juliowd)
Posts: 149
Estimable 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
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

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

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

 
Postado : 28/08/2014 7:40 am
(@juliowd)
Posts: 149
Estimable 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
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

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

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 28/08/2014 8:10 am
(@juliowd)
Posts: 149
Estimable 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
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious 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 = ""

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 28/08/2014 8:44 am
(@juliowd)
Posts: 149
Estimable 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
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious 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.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 28/08/2014 10:53 am
(@juliowd)
Posts: 149
Estimable 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
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious 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.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

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

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

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

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

application.enableevents = false

application.enableevents = true

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

 
Postado : 28/08/2014 1:40 pm