Página 1 de 1

Fechar arquivo em segundo plano

Enviado: 09 Out 2018 às 11:12
por psmerlo
Bom dia

Estou criando um código e me deparei com um problema o qual não estou conseguindo resolver. Vou descrever abaixo o cenário e conto com a colaboração de todos para resolver este impasse. Segue a descrição:
1 - Tenho uma planilha modelo para lançamento de dados (pedidos) onde são informados diversas informações
2 - Criei uma macro para salvar este pedido o qual leva em consideração o "nome do cliente" + "número do pedido" + a "quantidade" que está sendo comprado
3 - De acordo com o vendedor, o arquivo é salvo em suas respectivas pastas.
4 - Até o passo 3 tudo funcionando normalmente
5 - Este pedido após salvo, pode ser necessário efetuar alterações e é aqui que impacta o problema, pois eu consigo abrir este pedido, mas deste pedido que foi salvo anteriormente e agora está em edição novamente, preciso voltar para a tela do pedido modelo ou mesmo qualquer outra tela que tenho devidamente configurada via macro.
6 - Ele abre as telas que preciso normalmente, mas após abrir estas telas, preciso que o arquivo que estava em edição seja fechado. Este é o impasse que estou enfrentando;
7 - Não tenho como informar o nome do arquivo no código, pois o nome, número e quantidade serão variáveis

Se alguém já passou por isto e puder me ajudar ficarei imensamente grato

Aguardo

Atenciosamente

Paulo

Fechar arquivo em segundo plano

Enviado: 09 Out 2018 às 12:02
por mprudencio
Provavelmente vc ao abrir novamente vc tem o arquivo de edição como ativo.

Coloque o nome desse arquivo aberto em uma variavel e qdo precisar encerre o arquivo atraves da variavel.

Re: Fechar arquivo em segundo plano

Enviado: 09 Out 2018 às 13:20
por psmerlo
Como posso fazer isso?

Pode me dar um exemplo?

Se precisar posso lhe enviar o código que estou usando

Atenciosamente

Paulo

Fechar arquivo em segundo plano

Enviado: 09 Out 2018 às 14:09
por mprudencio
Vendo seu codigo bem mais facil ajudar

Pode usar um activeworkbook.close

Afinal qdo vc esta chamando o formulario vc esta com a planilha que vc editou ativa.

Fechar arquivo em segundo plano

Enviado: 09 Out 2018 às 14:15
por psmerlo
Estou enviando o código com a explicação do que imagino em cada linha
Código: Selecionar todos
Sub RetPedido()
'Retorna para a planilha de pedidos
    If Range("K1") = "Salvo" Then 
        Range("K53").Copy
        
     Workbooks.Open Filename:="Z:\Pedidos\Pedido.xlsm" (esta planilha ao abrir tem vinculos com outras planilhas e são atualizados automaticamente)
       
    Range("K55").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False (não cola o valor pq como tem vinculos ele perde a opção de colar)
     
   Range("B8").Select
   Windows("" & Range("K55").Value & ".xls").Activate (deveria voltar para a planilha de origem para fechar a mesma)
        Application.DisplayAlerts = False
        ActiveWorkbook.Save
        Windows("" & Range("K55").Value & ".xls").Close
        Range("K55").ClearContents
    Else
        Exit Sub
    End If
End Sub

Atenciosamente

Paulo

Fechar arquivo em segundo plano

Enviado: 11 Out 2018 às 18:44
por mprudencio
Se eu entendi vc quer fechar a planilha pedidos apos a colar os dados
Se for essa alteração abaixo resolve.

Apos esta parte do codigo

Range("K55").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False (não cola o valor pq como tem vinculos ele perde a opção de colar)

'Cole esta parte
with Workbook("Pedidos")
.save
.close
end with