Notifications
Clear all

Banco de Dados com senha

8 Posts
4 Usuários
0 Reactions
1,882 Visualizações
(@fairbanks)
Posts: 6
Active Member
Topic starter
 

Prezados,

Estou criando um banco de dados contudo para mair segurança quero que o mesmo fique oculto e salvo com uma senha, pois muitas pessoas vão utilizar. Abaixo segue o que fiz ate o momento em VBA:

Sub Banco_de_Dados_Clique()

Resposta = MsgBox("Tem certeza que quer salvar dados no Banco de Dados? É necessário ter preenchido todos os dados para armazenar no banco de dados.", vbYesNo + vbQuestion, "Armazenar")
If Resposta = vbYes Then
Sheets("BD").Visible = True
Sheets("MATRIX").Range("A21:K21").Select
Selection.Copy
Sheets("BD").Select
ActiveSheet.Unprotect "A"
Range("A1:K1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

ActiveSheet.Protect "B"
Sheets("BD").Visible = False
End If
Sheets("GRÁFICOS").Visible = True

End Sub

Essa macro está dando erro para proteger o Banco de dados com senha "B"!!! Alguém tem alguma solução???

 
Postado : 27/11/2014 7:54 am
themrl16
(@themrl16)
Posts: 60
Trusted Member
 

Bom dia fairbanks!

Até onde entendi, vc está desprotegendo o BD com a senha "A" (ActiveSheet.Unprotect "A"), sendo que foi protegido com a senha "B" (ActiveSheet.Protect "B")
Poderia verificar se isso está mesmo certo? Pode ser que ele esteja gerando o erro por causa disso...

@O ideal seria você nos disponibilizar um modelo do arquivo onde conseguiremos executar e ver o erro.

Abraços,

Murilo

Leia as REGRAS
Utilize arquivos COMPACTADOS
PESQUISE
AGRADEÇA clicando na mãozinha ao lado da ferramenta citar.
Marque o tópico como [Resolvido], clicando no ao lado do botão citar.

Abraços,

Murilo L
------------
e-mail: [email protected]
skype: fareva_mlima

 
Postado : 27/11/2014 8:17 am
(@fairbanks)
Posts: 6
Active Member
Topic starter
 

Bom dia Murilo,

Na verdade deixei a planilha com uma senha "A" ela desprotege executa o banco de dados e depois protege novamente. Coloquei a senha "B" para saber se estava rodando, mas gostaria que desprotegesse, fizesse o salvamento dos dados no banco de dados e depois reprotegesse.

Segue Planilha que fiz de modelo

 
Postado : 27/11/2014 11:08 am
(@gtsalikis)
Posts: 2373
Noble Member
 

O código nesta planilha está diferente do código que vc postou no tópico...

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 27/11/2014 11:13 am
(@fairbanks)
Posts: 6
Active Member
Topic starter
 

Prezados,

Peço desculpas anexei planilha antiga, segue a mais nova.

 
Postado : 27/11/2014 11:21 am
themrl16
(@themrl16)
Posts: 60
Trusted Member
 

Boa tarde fairbanks!

Debuguei seu código e observei que quando você desprotegia a planilha BD, ele perdia a área de transferência (cópia da seleção da MATRIX!A21:K21). Basicamente, ele cancelava a seleção que você havia feito na MATRIX antes de desbloquear o BD.

Sendo assim, quando seu código faz o PasteSpecial (Colar Especial), não haviam mais dados copiados para transferência, o que ocasionava no erro em tempo de execução.
Quando o BD já estava desprotegido, ele não perdia a área de transferência e não gerava erro (pois o Excel não executava novamente o trecho que desprotege o arquivo).

@Para solucionar o problema, eu apenas inverti a sequência que ele realiza as duas tarefas: Antes de copiar a MATRIX, ele realiza o desbloqueio do BD... dessa forma, ele não perderá a referência.

Substitua o código da sua planilha pelo seguinte código (as linhas alteradas estão com o comentário ' MURILO):

Sub Banco_de_Dados_Clique()

    Resposta = MsgBox("Tem certeza que quer salvar dados no Banco de Dados? É necessário ter preenchido todos os dados para armazenar no banco de dados.", vbYesNo + vbQuestion, "Armazenar")
    If Resposta = vbYes Then
    
    Sheets("BD").Visible = True
    Sheets("MATRIX").Range("A21:K21").Select
    Sheets("BD").Unprotect "B" ' MURILO
    Selection.Copy ' MURILO
    Sheets("BD").Select
    Range("A1:K1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    
                
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    End If
    ActiveSheet.Protect "B"
    Sheets("BD").Visible = False
    
    Sheets("GRÁFICOS").Visible = True
  
                    
End Sub

Leia as REGRAS
Utilize arquivos COMPACTADOS
PESQUISE
AGRADEÇA clicando na mãozinha ao lado da ferramenta citar.
Marque o tópico como [Resolvido], clicando no ao lado do botão citar.

Abraços,

Murilo L
------------
e-mail: [email protected]
skype: fareva_mlima

 
Postado : 27/11/2014 11:46 am
(@fairbanks)
Posts: 6
Active Member
Topic starter
 

Prezado Murilo,

Muto obrigado pela ajuda, o problema foi resolvido!

Atenciosamente,

Fairbanks

 
Postado : 27/11/2014 1:02 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite

Agora só falta você clicar na mãozinha, que fica do lado da ferramenta Citar, para agradecer ao Murilo

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 27/11/2014 3:39 pm