Ir ao conteúdo
  • Cadastre-se

Lamcarter

Membro Pleno
  • Posts

    52
  • Cadastrado em

  • Última visita

posts postados por Lamcarter

  1.  

    Boa tarde a todos.

    Dando continuidade à planilha que estou desenvolvendo para controlar a distribuição de processos aos advogados dativos, restam duas situações, um erro no botão excluir e a opção de alterar os registros, desde já grato pela ajuda.

    Erro no procedimento de excluir:

     

    Na planilha, com o auxílio de usuários desse fórum, a quem agradeço, inclui um botão para excluir os registros cadastrados no banco de dados, existem dois formulários, uma para a escolha do registro (cadastro), na sequência, outro que o usuário coloca os dados sobre os motivos da exclusão e sua identificação.

     

    A rotina funciona, desde que o registro a ser apagado, seja a primeira linha da planilha, a qual, no banco de dados, tem a indicação de código 01.

     

    Abaixo as telas que aparecerem, percebi, que entre a execução e antes do erro, o registro que está sendo exibido no formulário se altera, como se vê na figura 01, aparece o nome e logo após o código (em questão o código 01, que é o primeiro registro da planilha de cadastro), veja que ao clicar no botão confirmar a exclusão, o nome se altera, conforme figura 02.

    FIGURA 01:

    image.png.00e8c3422edafe2e729e768e6e5bcb00.png

    FIGURA 02:

     

    image.png.220f449511647cb3f6f837b14a09656d.png

    Esse é o erro, agradeço a ajuda.

    Lamcarter.

    image.png

    image.png

    - Pronto - Ultimo enviado ao Clube do Hardware - Perguntas - Erro exclusao cod 1.xls

  2. Em 20/10/2018 às 23:20, osvaldomp disse:

    O código que passei funciona corretamente com base no que você pediu no último parágrafo do post #3. Os erros que estão ocorrendo são em consequência dos pedaços de códigos errados, mal feitos, mal posicionados e desnecessários que você enxertou no código. 

     

    Sugestão: faça os testes com o código que passei sem enxertos e leia tudo que comentei no post #5.

     

    Boa tarde Osvaldo,

     

    Realmente você tinha razão, havia muita sujeira, ainda deve haver, mas eu não me prendo muito, desde que funcione, então para fazer funcionar, fiz uma limpa em todos os código, inserir observações sobre de onde eram os comandos, para facilitar oftalmologicamente, mas, também considerando que não tenho formação, ainda deve haver erros.

     

    Depois de revisado, em teste, localizei dois problemas:

     

    Formulário de exclusão:

    01 - erro ao excluir o código01

     

    Formulário de consulta

    01 - erro ao digitar um nome que não existe nos registros.

     

     

    FORMULÁRIO DE EXCLUSÃO:

    O código, como você passou realmente, funcionou, em parte, pois ele realmente exclui e inclui os dados, desde que não seja o código 01, pois fui fazer testes e me deparei com esse erro, olha as telas:

     

    Problema ao excluir o código 01, aparece essa mensagem:

    image.png.b449cf2328080ff023d321874499a6bb.png

    image.png.c82c94de0d4d224b7b921cb0ea36a081.png

     

     

    FORMULÁRIO DE CONSULTA:

     

    Erro, formulário de consulta, ao digitar um nome que não há no cadastro:

     

     

    image.png.7db7ff609da061e19f701d95958c5cef.png

    image.png.6d6d59aac80f8a819150fa18e7af0e48.png

     

    Desde já, agradecendo sua paciência, será que poderia me auxiliar.

     

    Atenciosamente,

    image.png

    image.png

    image.png

    image.png

    Advocacia Dativa ULTIMO - Erros.xls

  3. Caro, Osvaldo, Agradecendo a atenção, informo que o código, parcialmente funcionou, pois os dados coletados no form5, são registrados apenas na primeira fez, aparentemente quando está incluindo a nova linha na planilha de registro, está sobrepondo os dados.

     

    Relativamente ao formulário de consulta, que foi o primiro implementado desse tópico, ao incluir a linha que você me passou:

    ' COMANDO PARA PESQUISAR E MOSTRAR OS DADOS ANTES DE EXCLUIR
          Dim k As Long, i As Long
          If ComboBox1.Value = "" Then Exit Sub
            i = 1

     

    Percebi que se digitar uma letra de um nome que não exista, da aquele erro para depurar, será que tem como contornar?

     

    image.png.0c60ebd246843f7f62a0d1a513c6b51b.png

     

     

    Atenciosamente,

    image.png

    adicionado 0 minutos depois

    Opa faltou o a Planilha......

    Advocacia Dativa Nomeações - Cível - Formulário Exclusao - Perguntas 97.xls

  4. EU ESTOU QUASE LÁ - RSRS

     

    Quase, falta pouco, consegui fazer uma rotina, eu na verdade queria que os dados como nome, data e motivo, fossem confirmados depois, mais não consegui fazer, consegui invertendo os formulários, primeiro o usuário informa os dados, no entanto, os dados estão sendo gravados (na primeira etapa) corretamente, mas estão sendo sobrepostos na Segunda Etapa.

     

    Outra a Rotina de exclusão está num Loop que eu não sei como por fim.

     

    Se puderem ajudar fico grato.

    Advocacia Dativa Nomeações - Cível - Formulário Exclusao - teste - Perguntas.xls

  5. Muito Obrigado mesmo caro Osvaldo, demorei um pouco para entender a lógica das colunas, mas é bem isso que eu queria.

     

    Seria muito pedir uma explicação para um leigo, como funciona essa parte ".Cells(k, i): i = i + 1"?

     

    Aproveitando, como é sobre a mesma planilha e do mesmo assunto, não vou abrir novo tópico, estou na última parte, a parte da exclusão, nesse caso tem um porém, na verdade eu quero excluir na planilha de nomeações, mas colar os dados em uma planilha que registrará todas as saídas de nomes da lista.

     

    Fiz os formulários, inclusive agora sabendo fazer essa parte de escolher na listBox e até o botão da exclusão, com os dados de quem está excluindo e os motivos, criei a planilha de REGISTRO DE EXCLUSÃO onde quero transpor os dados:

     

    poderia me ajudar com o seguinte:

     

    Clicando em excluir, escolhe o nome, clica em excluir da lista, vai para o formulário de dados obrigatórios, quando clicar em excluir novamente, o sistema seleciona a linha do nome que foi escolhido copia, cola na linha 05 da planilha do registro de saídas, juntamente com os dados digitados no formulário de confirmação de exclusão, adiciona uma linha na linha 05, para ser sempre colada nela e os excluídos irem descendo e excluir de fez da planilha de cadastro dos advogados.

    será que me fiz entender?

     

     

    Novamente, muito, muito obrigado pelo tempo dedicado, é de muita valia,

     

    segue a planilha

     

    Advocacia Dativa Nomeações - Cível - Formulário Exclusao - Perguntas .xls

  6. Pessoal, boa tarde, como alguns estão acompanhando, pois a cada tempo me auxiliam, o que fico imensamente grato, venho, novamente, rogar por ajuda para com uma macro.

     

    encaminho anexo a planilha que estou desenvolvendo, nela, atualmente, estou no formulário de consulta, no qual fiz o formulário e inclui uma listbox para que o usuário escolha de quem ele quer os dados, mas não sei como fazer a macro para mostrar os dados, com base no nome escolhido, será que poderiam me ajudar, nem precisa fazer todos os campos, apenas me orientado eu faço todo o trabalho manual, apenas orientação, pesquisei, mas não achei.

     

    assim, no arquivo que encaminho, no botão Consulta Advogado que eu quero que apareça os dados do nome escolhido.

     

    Desde já agradeço.

     

    Advocacia Dativa Nomeações - Cível - Formulário Pesquisa.xls

  7. 14 horas atrás, osvaldomp disse:

     

    Veja se aproveita. Acrescente as 3 últimas linhas abaixo ao código do botão OK - Grava Indicação.


     

    
    ...
    
        ' Toledo 25 de setembro de 2018
    
    If Me.TextBox1.Value = "" Or Me.TextBox2.Value = "" Or Me.TextBox3.Value = "" Then
     MsgBox "PREENCHA TODOS OS CAMPOS": Exit Sub
    End If
    
    ...

     

    Muito Obrigado Osvaldo, deu certinho, vou fazer o formulário de consulta e edição. Abraços

     

    Lamcarter

  8. Pessoal, bem adiantado na ferramenta que preciso, no entanto, estou com certo “dificuldades” no comportamento dos formulários, pois eles recebem “células em branco” e eu não consegui encontra código para verificar os campos dos formulários e somente executar a macro caso exista dados nas TextBox, por exemplo, nesses códigos:

     

    Sheets("RegistroDistribuiçãoInfracional").Cells(linha, 1) = UserForm1.TextBox1.Text

    Sheets("RegistroDistribuiçãoInfracional").Cells(linha, 2) = UserForm1.TextBox2.Text

    Sheets("RegistroDistribuiçãoInfracional").Cells(linha, 3) = UserForm1.TextBox3.Text

    Sheets("RegistroDistribuiçãoInfracional").Cells(linha, 4) = UserForm1.TextBox4.Text

     

    Nos comandos acima, os dados existentes nas TextBox são transportados para as colunas da Planilha, no entanto, se em uma dessas TextBox, não houver dado, ele registra normalmente, queria que fosse conferido, não havendo dado, solicitar ao usuário.

    Seria possível ajuda, nesse ponto.

    Segue a Planilha para conhecimento.

    Atenciosamente,

    Lamcarter

    Nomeações.xls

  9. Bom dia pessoal, novamente venho rogar por auxílio de vocês, tenho pouco conhecimento de programação VBA, mas não desisto, vou tentando.... e no meu trabalho tenho a necessidade de controlar o cadastro  e distribuição de processos aos profissionais de assistência social, advogados e peritos, temos um controle manual, mas muito complicado de realizar e sem qualquer possibilidade de tirarmos um relatório, pretendo mudar isso, mesmo que em planilhas, exemplo de como é atualmente.

    Realizei pesquisas e não localizei algo que atenda, gostaria se saber se há possibilidade de fazer esse controle de forma mais célere e mantendo controle sobre a distribuição dos processos, pois, sempre há que se demonstrar transparência, assim preciso por exemplo saber se está sendo distribuído igualmente para todos (imaginei em um contador pelo nome, isso eu consigo rsrs).

    Eu em fazer uma forma de distribuição, no entanto, não consegui êxito em nenhuma com o formulário de cadastro, também, se houverem novas formas mais fáceis estou a disposição.

    Explico a tarefa:

    01 - Entra um processo com a necessidade de Perícia, Estudo ou defesa por advogado nomeado;

    (esses profissionais se dispõe a realizar a tarefa, temos uma lista com os nomes e sempre que há a necessidade colocamos o número a frente do nome da pessoa, impossível controle – conforme se vê da imagem acima)

    02) distribuído à pessoa que é o próximo, anotamos no processo e encaminhamos pra frente.

    03) Apenas tenho dúvida, no caso de ter que parar de distribuir para certo profissional, (pensei em Status – Ativo – Inativo) em caso de óbito ou mudança de cidade, pois simplesmente não posso excluir a linha onde ele está, tinha que incluir algo que impossibilitasse de chamá-lo, mas mantendo o registro dos processos já distribuidor à ele.

    04 ) importante observar que as vezes há a necessidade de substituir o profissional, por ele pode não aceitar o encargo por vários motivos, mas isso, não cancela a distribuição, fica registrado normal.

    Vamos ao problema:

    Quero fazer uma planilha onde eu consiga visualizar quem é o próximo profissional de uma lista já cadastrada, possibilite registrar sua indicação, desta forma, estou quebrando a cabeça para tentar fazer isso, mas olha, vou perder o resto do meu cabelo e acho que não vou conseguir, encaminho as formas que eu pensei em fazer:

    Ideia

    Um Menu Principal, um de Cadastro de profissionais, um Banco de Dados para as distribuições e uma para o Registro das Distribuições, para o lançamento das distribuições com dados de quem distribuiu e quando.

    No menu principal, além do cadastro, haverá botões para cada distribuição, ASSISTENTES SOCIAIS, ADVOGADOS, PERITOS E OFICIAS, quando acionado, traz a tela que possibilita saber quem é o próximo e distribuir a ele o processo.

    O formulário de cadastro fiz e deu certo, relativamente ao cadastro, falta a questão de o profissional estar ativo ou inativo, pois se estiver inativo, a linha na planilha com seu nome no banco de dados deveria ser toda completada com a palavra INATIVO, assim, na hora de distribuir não seria chamado seu nome.

    Dentro do formulário de distribuição, ao clicar em PRÓXIMA NOMEAÇÃO, a intenção é de que macro vá até a próxima linha vazia na coluna de distribuição, e mostra o nome que aparece na célula correspondente, possibilitando a inserção dos dados nas células vazias, exemplo: os nomes estão na coluna A (que refletem e a distribuição (que é o número do processo) fica na coluna B, clicando no botão próximo, a macro acha a primeira célula vazia na coluna B, mostrando no formulário a célula correspondente na A, não se se não compliquei, abrindo o formulário fica mais fácil.

    Assim, com o nome na tela, libere no formulário a possibilidade de inserir os dados da distribuição, como data, número do processo e responsável, sendo que, clicando em OK, registra que o profissional foi selecionado e esses dados devem ser lançados na planilha REGISTRO DE DISTRIBUIÇÃO, possibilitando futuras consultas, devendo ir os dados, todos no caso, NUMERO DO PROCESSO, NOME DO PROFISSIONAL, DATA DISTRIBUIÇAO E RESPONSAVEL, assim bastaria colocar um contador para cada nome, já se tem um relatório para ver se alguém está com mais ou menos distribuição, quero o que for mais fácil.

    Segue anexo o formulário que tentei fazer (que está vinculado aos botões na Planilha Menu Principal), onde na Label 2, ao clicar no botão "PRÓXIMA NOMEAÇÃO", no exemplo anexo, deveria aparecer o nome existente na célula D3, inserido dos dados, após clicar em OK queria que fosse incluído o número de ordem, no caso colocar o número do processo na célula D3 e na planilha REGISTRO DE DISTRIBUIÇÃO, conforme exemplo.

    Talvez eu não tenha visualizado uma forma mais fácil de fazer essa distribuição, estou aberto a sugestões.

    Ficarei super grato se alguém puder me auxiliar nessa gigantesca tarefa.

    Atenciosamente,

    Lamcarter

     

    Nomeações.xls

  10.  

    situação 1

    substitua esta linha

    dtData2 = Now

    por esta

    dtData2 = IIf([A1] <> "", [A1], Date)

    funcionamento - se houver uma data em "A1" a função retorna o tempo de acolhimento até aquela data, se não, retorna o tempo até a data atual (altere a célula se quiser)

    #####################################################################

    situação 2 (não utilizei o segundo código, aproveitei o primeiro e acrescentei o total de dias no resultado da função, veja se atende)

     

    substitua esta linha (no primeiro código)

    CalcPeriodoAcolhimento = sTmp

    por esta

    CalcPeriodoAcolhimento = sTmp & "  (" & DateDiff("d", dtData1, dtData2) & "  dias)"

    #####################################################################

    sugestão - se desejar atualizar automaticamente o resultado da função após alterar a data de entrada ou a data de saída, acrescente a segunda linha abaixo no seu código

    Function CalcPeriodoAcolhimento() As StringApplication.Volatile

     

     

    Olá Osvaldo.

     

    Primeiramente agradeço imensamente sua resposta é de muita valia.

     

    Situação 01

     

    Não funcionou o código, no meu caso ficou assim:

     
    dtData1 = [DataAcolhimento]
    dtData2 = IIf([DataDesacolhimento] <> "", [DataDesacolhimento], Date)
     
    porém ele continua contando até a data atual.
    olha eu não entendo de vba, mas no exemplo que você colou, aparentemente as palavras "IIF", "Date"  e as "aspas" deveriam aparecer de cor diferente, o que não ocorre, será que é por isso?
     
    Situação 02
     
    Funcionou perfeitamente, isso mesmo que eu queria, imensamente agradecido.
     
    Sugestão
     
    Como informado, não tenho amplos conhecimentos em VBA, na verdade quando comecei a desenvolver o sistema, isso há muito tempo, era esse comando que procurava, mas não encontrei, então a macro de idade e período de acolhimento está no diretamente no formulário. Realmente seria muito interessante conseguir mandar esse dado para a tabela, mas não sei como fazer, assim eu não consigo fazer relatórios com esse dado, uma vez que ele não vai para a tabela, mas muito obrigado, anotei ela e quando terminar as alterações pontuais que tenho que fazer, irei me debruçar nessa questão.
     
    Se puder me auxiliar com a situação 01 agradeço muito.
     
    Att.
     
    Lamcarter
  11. Olá pessoal, mais uma das minhas. rsrsrs

     

    Estou com dois problemas em dois códigos similares, são:

     

    01

    Tenho um campo que retorna o período em que um aluno fica acolhido em uma instituição, uso essa:

     
    ________________________________________________________________________________
    Function CalcPeriodoAcolhimento() As StringOn Error GoTo CalcPeriodoAcolhimento_ErrDim sTmp As String ' valor tmp da funçãoDim nDMA As Long ' n Anos, Meses, DiasDim NewDate As Date ' data auxiliar de cálculoDim sSngPlural As String ' string (mês, meses), (ano, anos)Dim dtData1 As Date ' data inicial de cálculoDim dtData2 As Date ' data finalIf IsNull([DataAcolhimento]) Then Exit FunctionEnd IfdtData1 = [DataAcolhimento]dtData2 = Now' Bloco Ano ---------------------' Calcula número inteiro de anosnDMA = DateDiff("yyyy", dtData1, dtData2)' Se Data1+nDMA>Data2, subtrai 1 anoIf DateAdd("yyyy", nDMA, dtData1) > dtData2 ThennDMA = nDMA - 1End IfsSngPlural = " ano, "If nDMA > 1 Then sSngPlural = " anos, "sTmp = nDMA & sSngPlural' Bloco Mês ---------------------' Nova data de referênciaNewDate = DateAdd("yyyy", nDMA, dtData1)nDMA = DateDiff("m", NewDate, dtData2)' Se Data1+nDMA>Data2, subtrai 1 mêsIf DateAdd("m", nDMA, NewDate) > dtData2 ThennDMA = nDMA - 1End IfsSngPlural = " mês e "If nDMA > 1 Then sSngPlural = " meses e "sTmp = sTmp & nDMA & sSngPlural' Bloco Dia ---------------------NewDate = DateAdd("m", nDMA, NewDate)nDMA = DateDiff("d", NewDate, dtData2)sSngPlural = " dia"If nDMA > 1 Then sSngPlural = " dias"sTmp = sTmp & nDMA & sSngPlural' Valor final da funçãoCalcPeriodoAcolhimento = sTmpCalcPeriodoAcolhimento_Fim:Exit FunctionCalcPeriodoAcolhimento_Err:MsgBox Err.DescriptionResume CalcPeriodoAcolhimento_FimEnd Function

    ________________________________________________________________________

     

    A fórmula funciona perfeitamente, porém quando os alunos deixam a instituição, essa fórmula não para, logicamente, TEM COMO ADICIONAR uma terceira condição para que quando estiver preencho o campo SAIDA esse contador parar???

     

    =========================================================================================================

     

    02 desse mesmo período, preciso extrair em dias.

     

    estou tentando mexer na macro, mas nao retorna erro algum, muito menos o resultado.

    veja como montei:

    -----------------------------------------------------------------------------------------------------------------------------

    Function CalcDiasDest() As String' Fornece o Período em que o processo de destituição está tramitando em diasOn Error GoTo CalcDiasDest_ErrDim sTmp As String ' valor tmp da funçãoDim nDMA As Long ' n Anos, Meses, DiasDim dtData1 As Date ' data inicial de cálculoDim dtData2 As Date ' data finalIf IsNull([DataInicioDest]) Then 'Campo DataInicioDest corresponde a data de RECEBIMENTO DA DESTITUICAOExit FunctionEnd IfdtData1 = [DataInicioDest]dtData2 = Now' Bloco Ano ---------------------' Calcula número inteiro de anos'dateDiff("d",#15/05/1980#,date)nDMA = DateDiff("d", dtData1, dtData2)'Se Data1+nDMA>Data2, subtrai 1 anoIf DateAdd("d", nDMA, dtData1) > dtData2 ThennDMA = nDMA - 1CalcDiasDest = sTmpEnd IfnDMA = DateDiff("d", dtData1, dtData2)' Se Data1+nDMA>Data2, subtrai 1 anoIf DateAdd("d", nDMA, dtData1) > dtData2 ThennDMA = nDMA - 1End IfsTmp = nDMACalcDiasDest_Fim:Exit FunctionCalcDiasDest_Err:MsgBox Err.DescriptionResume CalcDiasDest_FimEnd Function
    ------------------------------------------------------------------------------------------------
    Mas como dito nao retorna erro nem os dias entre as datas.
     
    Grato pela atenção
  12. Buenas pessoal, 

     

    Novamente recorro a este fórum.

     

    Seguinte tenho um sisteminha em Acces e em um formulário, possuo uma macro que se desenvolve com a seguinte linha de raciocinio:

     

    Private Sub BtoDesacolher_Click()
     
    If MsgBox("Deseja realmente Desacolher a criança ou adolescente selecionado? ", vbYesNo + vbCritical, "Desacolher") = vbYes Then
        
     MsgBox ("Favor preencher os campos corretamente e se identificar: (Digite o nome completo no campo identificado)")
        Me.FaseProcessual.Visible = False
        Me.ImpulsoProcessual.Visible = False
    e ai vai..................
     
    Na mensagem que o usuário recebe na tela, ao invés de aparecer essa genérica, gostaria de saber se consigo trazer o item (no caso a criança ou adolescente) que ele escolheu para desacolher.
     
    Assim, 
    If MsgBox("Deseja realmente Desacolher O FULANO DE TAL? ", vbYesNo + vbCritical, "Desacolher") = vbYes Then
     
    isso é possivel.
     
    informo que não tenho experiencia em VBA, mas fuço hein rsrsrsrs
     
    Editei, 
     
    Acredito que para entender melhor minha situação devo esclarecer um pouco mais:
     
    Meu sistema possui um formulário de FormPrincipal, onde cadastro altero e tudo mais. Nesse fomulário existe uma caixa de listagem que busca os nomes de uma tabela "cadastro", onde o usuário escolhe o nome e clica em um botão desacolher, que então roda a macro acima.
     
    Achei necessário, pois obrigatóriamente, embora não saiba como, vou ter que, via macro, verificar na tabela cadastro qual nome esta selecionado e trazer esse nome para a mensagem. como eu nao sei.
     
    acho que esclareci melhor
     
    atenciosamente, 
     
     
     
    Lamcarter
  13. Salve galera!

    Aqui novamente, pra tentar o auxílio de todos para resolver dois problemas, os seguintes:

    Problema 01

    Criei uma Mala Direta no Word 2010 (recentemente comecei a usá-lo - ainda inexperiente), porém quem já criou, viu que para inserir dados no banco de dados, o caminho é longo: >> Aba Correspondências>>Editar Listas de Destinatários >> Clicar na fonte de dados >> Editar (novamente) e finalmente >> Nova Entrada, para então inserir os dados.

    Assim, como tenho que inserir dados a todo o momento, para que outra pessoa possa visualizá-los, (pois os micros estão em rede e algumas pessoas inserem os dados e outras utilizam), e por pessoas diversas (não tem problema o acesso ao arquivo, pois quando a pessoa cadastra já fecha), o caminho é muito longo, deixando o trabalho quase que sem qualquer ganho de tempo.

    Então, estou tentando criar uma macro que o usuário ao clicar já esteja a disposição a caixa de destinatários pronta, apenas faltando clicar em "Nova Entrada". OU, alternativamente, um formulário que insira os dados automaticamente no banco!!

    Ai mora um dos problemas.

    Tento gravar a macro, mas o Word, embora "aparentemente" grave minha sequência de tarefas, não salva a macro, quando edito ela, está apenas com o nome e nem uma linha de comando e, como não sou expert em programação, estou vendido!!!!!:mellow:

    Tem como fazer por macro, formulário ou uma forma mais fácil??

    Problema 02

    Outro problema, ainda relacionado a mesma mala direta.

    Quando é editada a fonte de dados, as colunas estão sempre com a mesma "largura" e não é possível visualizar o conteúdo do nomes dos campos. Tem como salvar uma largura diferenciada de cada coluna, para que apareça os dados dos nomes de campo.

    Desde já agradeço aos que auxiliarem nesta missão. Abraço a todos.

    Lamcarter

    • Curtir 1
  14. CONSEGUI

    bom de uma maneira um pouco diferente Armand, mas consegui.

    olha como ficou o código:

    SUB Incluir_ou_Alterar Macro

    Senha = "12345"

    resposta = InputBox("Digite a senha para continuar?")

    If resposta <> Senha Then

    MsgBox "Esta senha não confere.", vbCritical, "Atenção"

    Exit Sub 'não continuar a macro

    End If

    'continuar a macro

    'inserir abaixo o resto da macro

    Sheets("Plan2").Select

    ActiveSheet.Unprotect "minha senha"

    Sheets("Plan1").Select

    Worksheets("Plan2").ShowDataForm

    ActiveSheet.Protect "minha senha"

    End Sub

    -------------------------///----------------------------------------------

    Porém agora preciso proteger as macros, como faço, como colocar uma senha para editar as macros, ou no Visual Basic, você pode me ajudar??

    desde já obrigado

    Lamcarter:D:D

  15. Boa Noite Armand, final de semana tentei realizar a proeza, acho que estou quase lá. rsrsrs

    seguinte fiz tudo como você passou, porém quando executo a macro aparece.

    ERRO EM TEMPO DE EXECUÇÃO.

    O OBJETO É OBRIGATORIO.

    Assim clicando em "depurar" na caixa de msg, ele seleciona a seguinte linha

    If TextBox2.Text <> Senha Then

    como já disse entendo pouco de vba, porém notei que quando executo a macro não disponibiliza a Caixa de Texto para que o usuario digite a senha, nao teria uma linha de comando "chamando" e dando ao usuario a opcao de digitar a senha?

    obrigado pela atenção.

    Demorei tive que ir pra outra cidade e nao consegui acessar a net!!

    Lamcarter

  16. Olá, primeiramente obrigado pela atenção.

    Entendi perfeitamente seu exemplo, porém nao tenho tanta habilidade assim com VBA, por favor veja se estou no caminho certo.

    no VBA, fui em inserir formulário, inclui uma textBox e alterei a propriedade como indicado. é isso?

    e outra coisa como faço para configurar essa "constante como variável global".

    por fvor se puder me auxiliar, desde já agradeço.

    abc

    Lamcarter

  17. Olá pessoal, seguinte consigo fazer com que determinada macro só seja rodada após a confirmação de uma senha?

    Ex.: tenho numa planilha vários botões de comando, com sua respectiva macro. Mas tem uma macro que chama o formulário autoexecutavel do excel (ShowDataForm) com o qual incluo e altero os dados de uma referida planilha, então gostaria que quem fosse chamar o formulário fosse apenas quem tem autorizão, pois a planilha fica protegida.

    Assim, gostaria que ao clicar no botão que chama o formulário fosse

    solicitada uma senha. Se a senha estiver correta, então a pessoa tem

    acesso ao formulário, podendo fazer alterações na planilha, caso contrário aparece a mensagem dizendo que o acesso não é permitido.

    OBS.: se possível, será qeu consigo fazer com que ao digitar a senha,o texto se trsnaformasse em asteriscos (***)

    olha a macro que chama o formulário:

    Sub Incluir_ou_Alterar()

    Sheets("Planilha tal").Select

    ActiveSheet.Unprotect "minha senha"

    Sheets("Menu Principal").Select

    Worksheets("Planilha tal").ShowDataForm

    ActiveSheet.Protect "minha senha"

    End Sub

    desde já obrigado

    Lamcarter

    • Curtir 1

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!