- Este tópico contém 7 respostas, 2 utilizadores e foi actualizado pela última vez há 14 anos, 7 meses por
Anónimo.
-
AutorArtigos
-
-
5 de Setembro de 2011 às 17:13 #989
Anónimo
Inactivogalerinha, estou querendo fazer o seguinte.
1) ao abrir o arquivo, de alguma forma, bloqueia a impressão do arquivo pelo atalho (ctrl + p) e até mesmo pela barra de ferramentas.
2) gostaria que a impressão fosse liberada apenas por um botão, e que nesse botão, a macro só fosse executada por uma senha.
fui claro na minha dúvida?
aguardo um retorno …
obrigado !!!
-
5 de Setembro de 2011 às 17:43 #1718
Anónimo
Inactivogalerinha,
o item 2 eu já resolvi, caso alguem queira, é só solicitar que eu posto aqui.
já o item 1 nao sei como resolver.
fico no aguardo ….
-
5 de Setembro de 2011 às 22:20 #1719
jorgerod
Administradorboas, wagner,
vê em: http://www.mrexcel.com/archive/printing/1456.html
pode ser que te ajude para o que pretendes.
para o comando de menu, podes utilizar:
sub disablemenuitems()
with commandbars(“ficheiro”)
.controls(15).enabled = false ‘print button
end with
end sub
outra hipótese:
private sub workbook_beforeprint(cancel as boolean)
cancel = true
end subfica bem.
-
5 de Setembro de 2011 às 22:22 #1720
jorgerod
Administradorjá agora, se puderes e quiseres (a galera agradece :)), posta o teu código quanto à 2ª questão!!!!
obrigado.
-
6 de Setembro de 2011 às 14:10 #1721
Anónimo
Inactivogalerinha, respondendo ao item 2 desse tópico:
a macro só é executada após liberação por senha. exemplo: efetuar uma impressão.
sub imprimir()
dim yourname as string
yourname = inputbox(“digite a senha …”)
if yourname = “1234” then ‘nesse caso a senha é 1234
‘colocar a macro a ser executada, nesse caso imprimir
if msgbox(“deseja imprimir o arquivo?”, _
vbquestion + vbyesno, “jw consultoria”) = vbno then exit subapplication.dialogs(xldialogprintersetup).show
activewindow.selectedsheets.printoutexit sub
elseif yourname = “” then
msg = msgbox(“favor digitar a senha …”, vbexclamation, “jw consultoria”)
exit subelse
msg = msgbox(“senha incorreta!!!”, vbcritical, “jw consultoria”)
exit subend if
end sub
qualquer dúvida, favor postar…
att.
wagner goularte -
6 de Setembro de 2011 às 14:22 #1722
Anónimo
Inactivojorge,
a segunda hipotese funciona, só que impede totalmente que o arquivo seja impresso. até mesmo por botao criado.
private sub workbook_beforeprint(cancel as boolean)
cancel = true
end sub
____________________________________________________________________________________________
a primeira hipotese nao funcionou. e tb nao entendi o que ela fará direito.?? pode me explicar melhor??sub disablemenuitems()
with commandbars(“ficheiro”)
.controls(15).enabled = false ‘print button
end with
end sub
___________________________________________________________________________________________________
existe uma outra hipostese que achei, mas não consegui fazer funcionar e nao entendi direito. vc poderia me ajudar?? segue:‘é só fazer uma verificação quando você clicar o botão
‘ex: no evento do botão imprimir
‘quando clicar o botão de imprimir, defina uma variavel ex: v_botão=”botão imprimir”private sub workbook_beforeprint(cancel as boolean)
if v_botão “botão imprimir” then ‘se o botão clicado não for o botão imprimir então cancela
v_botão = “”
cancel = true
end ifend sub
________________________________________________________________agradeco muito pelas ajudas !!!
-
6 de Setembro de 2011 às 15:03 #1723
Anónimo
Inactivojorge !!!
respondendo ao topico completo agora! consegui resolver todos os problemas!!
entrando no vba, abrir a pasta “microsoft excel objetos” e depois “estapasta_de_trabalho” e copiar essa programação:
private sub workbook_beforeprint(cancel as boolean)
if prtok then
cancel = false
else
msgbox “não pode ser impresso por aqui! clique no botão imprimir”
cancel = true
end if
end subisso impedirá que o arquivo seja impresso pelo atalho ctrl+p ou pela barra de ferramenta.
crie um botÃo para imprimir e atribua a macro seguinte a ele:
public prtok as boolean
sub printnow()
dim yourname as string
yourname = inputbox(“digite a senha …”)
if yourname = “1234” then
‘imprimir
if msgbox(“deseja imprimir o arquivo?”, _
vbquestion + vbyesno, “jw consultoria”) = vbno then exit sub
prtok = true
application.dialogs(xldialogprintersetup).show
activewindow.selectedsheets.printout
prtok = false
exit subelseif yourname = “” then
msg = msgbox(“favor digitar a senha …”, vbexclamation, “jw consultoria”)
exit subelse
msg = msgbox(“senha incorreta!!!”, vbcritical, “jw consultoria”)
exit subend if
end sub
qualquer dúvida, postar…
valew !!!
-
8 de Setembro de 2011 às 18:01 #990
jorgerod
Administradorobrigado, wagner!!! 🙂
-
-
AutorArtigos
- Tem de iniciar sessão para responder a este tópico.
EXCELer Tudo sobre EXCEL em Português