Notifications
Clear all

PROBLEMAS BÁSICOS: Parar Macro quando não existir dados da p  

  RSS

Lamcarter
(@lamcarter)
New Member
Entrou: 9 meses atrás
Posts: 2
20/11/2019 4:37 pm  

Pessoal, sou iniciante neste Fórum. Tenho pouco conhecimento de access e estou desenvolvendo uma forma de agilizar o nosso trabalho.

Explicarei, o funcionamento da rotina para melhor entendimento das funções que necessito ajuda.

Em brevíssimas palavras, trabalho em um órgão público que gerencia outros órgãos, todos os registros que os órgãos fazem, devem encaminhar para o local onde trabalho.

Os registros são efetivados em "livros" e todos os livros tem obrigatoriamente que ser encaminhado, sempre que "completar todo o livro" para encerrar e o novo para "abrir".

Abrir um livro: é escrever um termo com dados da data em que está sendo iniciado os registros, para que ele serve, quantas folhas terá e qual órgão vai usar.
Encerrar um livro: é, igualmente, escrever um termo com os dados acima, no entanto, informando que não será mais usado.

Esse procedimento de abertura e encerramento é manual e isso que quero automatizar, em parte, porque já vi algumas limitações.

Como ocorre hoje:

01 - Primeiro - Os órgãos, sempre que necessitam abrir ou encerrar um livro, encaminham, através de um sistema similar a um email, em arquivo .PDF uma cópia do termo do livro que está sendo encerrado e uma cópia do livro que será aberto, via de regra, o próximo. (então, vem dois arquivos em formato .PDF um Termo de encerramento e um Termo de abertura)

02 - Segundo - O controle desses registros, estão em uma planilha, atualmente com quase 6000 (seis) mil linhas, recebemos os termos, localizamos o livro a ser encerrado, anotamos a data e escrevemos o próximo registro do livro a ser aberto.

03 - Terceiro - Realizado a anotação do encerramento e registrado o novo livro, temos um arquivo em word que é uma certidão de que isso (o encerramento e a abertura) foi feito, nesse arquivo, " juntamos" cópia dos dois termos, porque são 12 órgãos e muitos livros, assim, temos controle sobre o que foi encerrado - (essa parte de abrir e copiar a imagem do arquivo em PDF e colar na planilha do Excel onde coloquei o termo de encerramento e abertura, pelo que pesquisei, não é possível, até achei uma macro mas não funcionou, o adobe não abriu o arquivo)

04 - Quarto - Alterado o arquivo em word salvamos em PDF e encaminhamos aos órgão através do sistema.
Caso queriam algumas dessas macros que eu tentei, posso pesquisar, porque baixei, fiz adaptações e não funcionou, algumas apaguei, outras estão nos módulos e links das planilhas.

Esse procedimento que quero alterar para ser feito por formulários, o que agiliza em muito os atos, porém, estou com algumas dificuldades, por não ter amplo conhecimento em VBA, sendo elas:

Criei um formulário com as opções de ENCERRAR, REGISTRAR E ALTERAR OS DADOS (QUE CHAMAMOS DE ADITAR)

No formulário de registrar, tudo funciona.

Já nas opções de encerrar, alterar, pesquisar e salvar o .PDF, tenho detalhes que não consigo arrumar, embora tenha pesquisado muito, testado inúmeras macros.

Vou explicar por partes, os detalhes:

01 ) no botão ENCERRAR, abre-se uma pesquisa, que busca o livro a ser encerrado, a pesquisa funciona, desde que o usuário insira dados existentes, se ele digita um número que não existe ou um ano que não tem registro, ou ainda deixa um campo em branco, não consegui parar a macro e mostrar uma mensagem ao usuário que o que ele pesquisa não existe na planilha ou ele deve completar os campos.

02) O usuário colocando dados que existem, a pesquisa funciona e traz o registro localizado, com as opções de ALTERAR e ENCERRAR.

NO BOTÃO ALTERAR, quando o usuário clica, edita os campos, deixa alterar, mas não salva no registro selecionado;
No BOTÃO ENCERRAR, chama um formulário de confirmação e segue o mesmo problema, não consigo mandar os dados para o registro selecionado, ele não encerra o livro.

03) Consegui gerar o arquivo em PDf, ainda em fase de criação, pois tenho que mandar uns dados do livro aberto ou encerrado para essa Plan, mas queria saber se há a possibilidade de ou carregar imagem do PDF para essa PLAN, antes de encerrar ou ao final, para o gerar um único arquivo contendo os três atos, no entanto, caso o arquivo gerando anteriormente esteja aberto ele dá erro, queria que informasse que tem esse arquivo abert.

PARA SALVAR O arquivo em PDF, tem que ser criada a pasta criada C:Livros, pra que a macro funcione. Isso eu também queria alterar, pois trabalhamos com rede intranet, queria salvar na pasta onde está o arquivo, fiz vários testes, mas não consegui.

Segue a planilha, a qual tido que excluir muita coisa em razão do tamanho, mas acho que dá pra entender e segue cópia de um arquivo finalizado com os três atos.

Desde já agrade a atenção.

Lamcarter


Citar (Quote)
Lamcarter
(@lamcarter)
New Member
Entrou: 9 meses atrás
Posts: 2
20/11/2019 4:46 pm  

Desculpem, não obtive êxito em anexar a planilha.
vou então, colocar tópico a tópico as dúvidas.
Duvida 01: 01 ) no botão ENCERRAR, abre-se uma pesquisa, que busca o livro a ser encerrado, a pesquisa funciona, desde que o usuário insira dados existentes, se ele digita um número que não existe ou um ano que não tem registro, ou ainda deixa um campo em branco, não consegui parar a macro e mostrar uma mensagem ao usuário que o que ele pesquisa não existe na planilha ou ele deve completar os campos.

Código:

Dim linha As Double

linha = Application.WorksheetFunction.CountA(Columns("B"))

        If Me.TextBox1.Value = "" Or Me.TextBox2.Value = "" Then
            MsgBox "DIGITE O NÚMERO DE SEQUENCIA DO REGISTRO DO LIVRO E ANO!", vbCritical, "Dado Obrigatório faltando!"
            Me.TextBox1.SetFocus
        Exit Sub
        End If

        For i = 2 To linha
        
        If Range("A" & i) = TextBox1.Text And Range("B" & i) = TextBox2.Text Then
                              
        'Alimenta as TextBox
        TextBox3.Value = Range("A" & i)
        TextBox4.Value = Range("B" & i)
        TextBox5.Value = Range("D" & i)
        TextBox6.Value = Range("E" & i)
        TextBox7.Value = Range("F" & i)
        TextBox8.Value = Range("G" & i)
        TextBox9.Value = Range("I" & i)
        TextBox10.Value = Range("O" & i)
        TextBox11.Value = Range("H" & i)
        TextBox12.Value = Range("K" & i)
        TextBox13.Value = Range("L" & i)
                    If TextBox11.Value <> "" Then
                    Me.Frame7.Caption = "Livro encerrado, conforme dados que seguem:"
                    Me.Frame7.ForeColor = &H8000&
                    Me.BotaoAlterar.Visible = False
                    Me.BotaoEncerraLivro.Visible = False
                    Me.TextBox11.Visible = True
                    Me.TextBox13.Visible = True
                    Me.Label13.Visible = True
                    Me.Label15.Visible = True
                    MsgBox "Atenção, livro já encerrado!!!!. Eventuais alterações, apenas podem ser realizadas caso haja Termo Aditivo!", vbExclamation, "ATENÇÃO"
                    Me.BotaoNovaPesquisa.Visible = True
                    Else
                    Me.BotaoAlterar.Visible = True
                    Me.BotaoEncerraLivro.Visible = True
                    MsgBox "Confirme os dados do livro a ser encerrado, caso haja necessidade de alterar o número de folhas ou incluir observações, clique no botão ALTERAR, estando tudo correto, clique em ENCERRAR LIVRO!", vbInformation, "ATENÇÃO"
                    End If
                Exit Sub
        
End If
Next
End Sub

O que acontece: se o usuário não digitar um dos valores, aparece a mensagem, mas mesmo assim traz o formulário sem dados, se o usuário digitar um numero que não existe, não aparece erro nenhum e aparece o formulário sem dados.

Obrigado, desculpe a gafe inicial.


ResponderCitar (Quote)
Reinaldo
(@rlm)
Estimable Member
Entrou: 6 anos atrás
Posts: 246
21/11/2019 10:26 am  

Temporariamente o forum não está "aceitando" upload de arquivos/modelos, pedimos que sejam disponibilizados/"upados" em algum site de compartilhamento tipo SendSpace / Mega / Dropbox / Googledrive, e o link para download/visualização seja informado aqui no forum.

Quanto a rotina disponibilizada:
O trecho [code~If Me.TextBox1.Value = "" Or Me.TextBox2.Value = "" Then
MsgBox "DIGITE O NÚMERO DE SEQUENCIA DO REGISTRO DO LIVRO E ANO!", vbCritical, "Dado Obrigatório faltando!"
Me.TextBox1.SetFocus
Exit Sub
End If

Caso TextBox1 ou Texbox2 estejam sem conteudo, a roitna não é executada.
Pergunta: Isso está ocorrendo?

Reinaldo


ResponderCitar (Quote)
Compartilhar: