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.
  • Avatar do usuário
#64185
Ola, estou com o seguinte problema eu criei uma macro porem não sei usar o vba eu apenas iniciei uma macro, executei o que queria depois fui juntando até formar uma única.
ela consistem em abrir um arquivo de Excel "DADOS DA AGENDA" copiar as informações da "AGENDA" colar no outro arquivo que abriu, salvar e fechar. Até aqui ele executa perfeitamente (se tiverem dicas para melhorar eu aceito kkkk), porem se duas pessoas estiverem salvando ao mesmo tempo ele da erro na execução do vba e não salva nem um nem outro. Separados eles funcionam normal se cada um salvar em seu pc um de cada vez porem se por algum motivo os 2 clicarem em salvar ele da erro nos dois. Alguém sabe o que posso estar utilizando para sair dessa situação? Pensei em usar algum código de erro para quando der erro ele executar de novo ou fechar e dar uma mensagem e a pessoa salvar novamente não sei se é possível isso.
o vba q tenho é esse

Sub SALVAR()

Application.ScreenUpdating = False
Windows("AGENDA.xlsm").Activate

Workbooks.Open Filename:="\\192.168.3.152\giga net\WILIAN\teste\DADOS DA AGENDA.xlsm"

Windows("DADOS DA AGENDA.xlsm").Activate
Sheets("DADOS").Select
Range("B4:G4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("G4").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-2]-RC[-3]"
Range("G5").Select
Windows("AGENDA.xlsm").Activate
Range("F13:J13").Select
Selection.Copy
Windows("DADOS DA AGENDA.xlsm").Activate
Sheets("DADOS").Select
Range("B4:F4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("AGENDA.xlsm").Activate
Range("F11:I12").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("L11").Select
ActiveCell.FormulaR1C1 = "0"
Range("F11").Select

Workbooks("DADOS DA AGENDA.xlsm").Close SaveChanges:=True
Application.ScreenUpdating = True
End Sub


de ante mão ja agradeço!
#64220
oi, boa noite, talvez o que possa estar acontecendo que na hora que o segundo abre a planilha da problema, pois ele precisa abrir como somente leitura.

para vc capturar erros no VBA vc coloca no inicio
on error goto tratamentoerro

ahi no fim , antes do end sub vc coloca

exit sub
tratamentoerro:
e aqui vc faria o seu tratamento
tem um objeto chamado err que vc pode pegar o numero do erro ( acho que é err.number ) e ahi em função do erro ver qual o melhor jeito.
também vc pode pegar a descrição deve ser algo como err.description
WILIANOGUIMARAES agradeceu por isso
#64248
oi muito obrigado pela ajuda eu usei o on error goto ele funcionou em partes porem eu continuo com problema para salvar de 2 PC´s simultaneamente, agora o erro é que quando o outro pc clica em salvar junto com o meu, ele cria uma copia para salvar ao invés de salvar no mesmo arquivo. Será que não tem alguma forma de forçar um erro caso tenta salvar a copia, que ai coloca um mensagem de erro e pede para tentar de novo, ou bloquear o acesso ao arquivo enquanto estiver salvando em outro pc e com isso da a mensagem também para tentar novamente. O que me sugere?
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