Notifications
Clear all

Copiar/Colar valores p/ outro arquivo, suprimindo macros ..

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

Olá! Estou abrindo este tópico por sugestão do Wagner Morel.
O caso é o seguinte:

eu tenho este código, desenvolvido pelo alexandrevba:

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").Save
        Workbooks("MODELO Sistema de administração financeira.xlsm").Close
    End Sub

E tenho dois probleminhas nele ainda pra resolver.
(1) quando ele cola os dados usando

Destination:=wbOpen.Sheets("anuidade").Range("J8:J230")

,
ele cola vínculo do arquivo de origem. O que eu preciso é colar apenas os valores numéricos.
(2) quando ele abre o arquivo DESTINO para fazer essa tal colagem, o arquivo DESTINO, infelizmente, abre uma MSGBOX. Essa msg box só aparece se a célula a1 da aba "CAPA" estiver VAZIA. Eu queria que ele abrisse, colasse (só valores) e fechasse sem fazer nenhuma pergunta.
Enfim... será que dá?

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

seguem os arquivos.

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

Favor começar a seguir as regras do forum e:
1) compactar SEMPRE os arquivos.
2) usar títulos adequados para seus tópicos. Missão impossível não é título adequado.

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

Poisé. Não me liguei. Me empolguei aqui. Vou caprichar daqui pra frente.
Mas a questão é que não consigo mais alterar o nome do tópico pra um correto. O botão "editar" não aparece.
Anexo os arquivos compactados, conforme as regras do fórum.

 
Postado : 28/08/2014 1:14 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Alterei para algo que faz mais sentido... q pode ser buscado no futuro por outras pessoas... (essa é a intenção para um nome bom no tópico)....

Quanto a sua dúvida, vamos lá....
peguei as linhas que importam:

 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")

Perceba que o uso do underscore no final das linhas está confundindo você...
Eu removi o underscore e trouxe o conteúdo para a linha de cima... o _ ao final, só serve para continuar na linha de baixo, mas é como se tivesse na mesma linha... OU SEJA, por exemplo, não existe a linha "Destination:= . . . bla blabla "... na verdade esse é um pedaço da linha de cima... Dito isso vamos aos problemas:

1) A linha copia e cola, usando o recurso padrão de copiar e colar do excel. Por isso as referências aparecem.

Eu trocaria:

wbMe.Sheets(strSheet).Range("F63:F285").Copy Destination:=wbOpen.Sheets("anuidade").Range("J8:J230")

por

wbOpen.Sheets("anuidade").Range("J8:J230").value = wbMe.Sheets(strSheet).Range("F63:F285").value

Assim vc não usa o Copy /Paste, mas tem o mesmo efeito de copiar e colar valores...

2) Vc deve ter código no workbook_open do outro arquivo, não vou abrir agora. Ou na rotina Auto_Open... Esses códigos disparam quando vc abre o arquivo com a linha:

Set wbOpen = Workbooks.Open (Filename:="C:Sistema de administração financeiraMODELO Sistema de administração financeira.xlsm", Editable:=True)

Para corrigir, vc precisa *desligar os eventos do Excel para ele suprimir a chamada para esta rotina... assim:

Application.enableEvents=False
Set wbOpen = Workbooks.Open (Filename:="C:Sistema de administração financeiraMODELO Sistema de administração financeira.xlsm", Editable:=True)
Application.enableEvents = True

Isso resolverá o problema da msgbox...

Acho que isso resolve...

FF

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

Fernando!!!
Ficou perfeita cara!!!
Demais!!!
Eu só adicionei uma linha para salvar, pois ele perguntou no final se queria salvar.
O código final ficou assim:

        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"
           
            Application.EnableEvents = False
            Set wbOpen = Workbooks.Open(Filename:="C:Sistema de administração financeiraMODELO Sistema de administração financeira.xlsm", Editable:=True)
            Application.EnableEvents = True           
            
            wbOpen.Sheets("anuidade").Range("J8:J230").Value = wbMe.Sheets(strSheet).Range("F63:F285").Value
            
            Workbooks("MODELO Sistema de administração financeira.xlsm").Save
            Workbooks("MODELO Sistema de administração financeira.xlsm").Close
        
        End Sub

Era isso então!!!
Desculpe-me o desrespeito às regras do fórum.
Eu geralmente sou cuidadoso pra isso.
Agradeço ao alexandrevba, Wagner Mourel e a você pela ajuda.
Eu não imaginava que daria tanto trabalho.
Abração forte e muita gratidão!

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

Legal... Relaxa, uma puxada de orelha e vc já entrou no trilho, rs, (nem deu tanto trabalho assim)...

Seguinte, marque então a minha resposta como a solução, clicando no v'zinho verde acima dela...
E clique na mãozinha para agradecer tb...

(importante sempre marcar a resposta que te satisfez, como a solução para o problema... muita gente marca o próprio tópico como resolvido (como vc fez no outro tópico e neste tb), e isso dificulta futuros membros a encontrarem qual a solução pro problema)... A indicação da solução tem que ser na resposta que tem a solução, e não na sua...

Os agradecimentos é uma forma de fazer um ranking virtual, que não quer dizer nada, subir... e o usuário passa a ter mais, digamos, prestígio... isso é mais prazer pessoal para quem é agradecido já que não somos pagos para ajudar, e claro, educado por quem foi ajudado...

já mudei pra vc... mas atente mais essa... sempre !

FF

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

Eu marquei o "v" errado em várias já! =/
Não sabia que tinha diferença.
Mas agora já sei e vou fazer como manda o figurino. Fiquei com uma curiosidade: Nestes casos, vocês moderadores que ficam arrumando todos esses erros?

 
Postado : 28/08/2014 1:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Sim... não todos, mas quando vemos, arrumamos...
É sacanagem poxa, o cara pergunta, é respondido, e não dá o crédito de uma boa resposta nem aponta pro site que o cara dá boas respostas...

Entende ? E por isso, sempre que eu vejo, eu arrumo. Acredito que os outros moderadores tb...
Quando o crédito é meu, eu pego mesmo, sem dó. Qdo é dos outros, eu respeito o que o dono decidiu, desde que o dono do tópico tenha escolhido alguém.

Digo, se o dono deu crédito pra alguém, tenho até obrigação de respeitar e não mudar. Mas se o dono dá a ele mesmo o crédito pela resposta pra pergunta que ele fez, ah, daí eu não perdôo, eu leio o tópico todinho até achar a resposta. E marco resolvido no lugar certo....

Eu acho justo e até hoje ninguém reclamou ! ;-)

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

Eu faria o mesmo. Tenho consciência de que se queimam vários e vários neurônios pra chegar nessas respostas!!!
Parabéns pra vocês.
E eu venho sentindo vontade de ajudar. À medida que eu for tendo mais conhecimento, me atreverei e darei minhas contribuições. Se não fosse esse esforço que eu vejo aqui, eu teria sérios problemas! hehehe
Valeu cara!! E até o nosso próximo desafio!

 
Postado : 28/08/2014 2:11 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Valeu, até !

FF

 
Postado : 28/08/2014 2:12 pm