Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por psmerlo
#37630
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
Por mprudencio
Posts
#37634
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.
Por mprudencio
Posts
#37643
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.
Por psmerlo
#37644
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
Por mprudencio
Posts
#37713
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
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord