Notifications
Clear all

Obrigar a preencher uma celula.

17 Posts
4 Usuários
0 Reactions
7,452 Visualizações
(@adriano-nogueira)
Posts: 19
Eminent Member
Topic starter
 

Bom dia a todos!
Gostaria de saber como é que posso obrigar um utilizador a preencher uma determinada célula, ou seja,
Se o utilizador não preencher as células E12; E14; E16 dá para gravar o documento.
E se for possível habilitar alguma mensagem de erro.
Obrigado

 
Postado : 12/06/2012 7:01 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Tente adaptar.

]Private Sub Workbook_BeforeSave(Cancel As Boolean)

If Sheet1.Range("A1:B2").Value = "" Then 'Faça a adaptação de acordo com sua necessidade

MsgBox "O arquivo só será salvo depois do preenchimento das células!"

Cancel = True

End If

End Sub
 
Postado : 12/06/2012 7:58 am
(@adriano-nogueira)
Posts: 19
Eminent Member
Topic starter
 

Perfeito Alexandre funcionou, mas as células que eu queria que ficassem bloqueadas são essas, E12; E14; E16.
Tem alguma condição que eu possa aplicar a essa situação?

 
Postado : 12/06/2012 11:06 am
(@depoisteconto)
Posts: 183
Reputable Member
 

Perfeito Alexandre funcionou, mas as células que eu queria que ficassem bloqueadas são essas, E12; E14; E16.
Tem alguma condição que eu possa aplicar a essa situação?

Alexandre, pegando o gancho...

Adriano, fica assim:

If Sheet1.Range("E12").Value = "" Or Sheet1.Range("E14").Value = "" Or Sheet1.Range("E16").Value = "" Then
 
Postado : 12/06/2012 11:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

OU...

Private Sub Workbook_BeforeSave(Cancel As Boolean)

If Sheet1.RRange("E12, E14, E16").Value = "" Then 'Faça a adaptação de acordo com sua necessidade

MsgBox "O arquivo só será salvo depois do preenchimento das células!"

Cancel = True

End If

End Sub

Caso as dicas te ajudaram favor clicar na mãozinha!!!!!!!!

 
Postado : 12/06/2012 11:20 am
(@adriano-nogueira)
Posts: 19
Eminent Member
Topic starter
 

A minha macro esta assim

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("E12") = "" Then
If MsgBox("Responda a pergunta" & vbCrLf & _
"Sem a resposta nao podera salvar o arquivo", _
vbDefaultButton2 + vbNo) = vbYes Then Exit Sub
Cancel = True
End If
End Sub

Eu fiz os 2 comandos que vc me indicou mas nao deu certo
:/

 
Postado : 12/06/2012 12:56 pm
(@depoisteconto)
Posts: 183
Reputable Member
 

Adriano, talvés vc esteja colocando no lugar errado.
E só copiar o comando sugerido pelo Alexandre e colocar no "Esta pasta de trabalho"

At

 
Postado : 12/06/2012 2:52 pm
(@adriano-nogueira)
Posts: 19
Eminent Member
Topic starter
 

Eu fiz o comando e esta aparecendo assim "ERRO EM TEMPO DE EXECUCAO ‘424’
O OBJETO E OBRIGATORIO"

 
Postado : 13/06/2012 12:35 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Veja se te ajuda.

Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)

If Sheets("O-Nome_Sua_Planilha_Aqui").Range("E12, E14, E16").Value = "" Then

MsgBox "O arquivo só será salvo depois do preenchimento das células!"

Cancel = True

End If

End Sub
 
Postado : 14/06/2012 5:34 am
(@adriano-nogueira)
Posts: 19
Eminent Member
Topic starter
 

Fiz o comando e apareceu a segunte caixa de texto:
ERRO DE EXECUÇÃO ‘9’:
SUBSCRITO FORA DO INTERVALO.
Obrigado pelas respostas
Bom dia!

 
Postado : 15/06/2012 7:08 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Veja m exemplo..baixo pelo link
http://www.sendspace.com/file/8lhnxm

 
Postado : 15/06/2012 11:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Segue,

att MarkoSoftware

 
Postado : 22/06/2012 5:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Perdão, desconsiderar o anexo anterior nao tinha me atentado que queria que fosse no ato de salvar a planilha segue outro anexo, com a correção,

att MarkoSoftware

 
Postado : 22/06/2012 5:32 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

o subscrito fora do intervalo significa que seu código fez referencia a algum objeto que não existe na coleção.
Não li o tópico todo, mas... veja só, por exemplo, se seu arquivo tem uma planilha que chama "TESTE"
e no código vc escreve Sheets("TESTES"), vc verá esse erro.
Verifique então, no código que vc está tentando rodar, se não há alguma coisa dentro das aspas dentro dos parenteses, que não existe.
Sempre que te passarem um código de exemplo, é necessário rever estes itens para que vc adapte o código para seu arquivo.

Entendeu?

Agora vamos ao sei caso (agora eu li o tópico)
O Alexandre escreveu:

Sheets("O-Nome_Sua_Planilha_Aqui")

aonde ele escreveu "O NOME DA SUA PLANILHA AQUI"
vc precisa de fato trocar o nome da planilha ali, para o nome da planilha do seu arquivo....

p.s.: agora que eu vi que tinha mais paginas no tópico, rs

 
Postado : 22/06/2012 5:41 pm
(@robert)
Posts: 561
Honorable Member
 

Adriano,
Boa noite!

Tentando ajudar...

O código do Alexandre estar perfeito, mais tem um ERRO só na letra "R" . Veja se agora atende ao seu critério.

ERRADO.


Private Sub Workbook_BeforeSave(Cancel As Boolean)

If Sheet1.RRange("E12, E14, E16").Value = "" Then 'Faça a adaptação de acordo com sua necessidade

MsgBox "O arquivo só será salvo depois do preenchimento das células!"

Cancel = True

End If

End Sub

CORRETO.

Private Sub Workbook_BeforeSave(Cancel As Boolean)

If Sheet1.Range("E12, E14, E16").Value = "" Then 'Faça a adaptação de acordo com sua necessidade

MsgBox "O arquivo só será salvo depois do preenchimento das células!"

Cancel = True

End If

End Sub
 
Postado : 22/06/2012 5:48 pm
Página 1 / 2