VBA – Pesquisar em um UserForm

Busca no Form
Olá Galera.

Espero estar ajudando a todos a entederem um pouco mais do modulo VBA do Excel. Daremos hoje, continuidade ao nosso pequeno aplicativo.

Construiremos o botão Pesquisar. Esta tarefa é bem facil. Iremos tambem dar continuidade as tomadas de desição em VBA tambem com o Botão de Pesquisa. O código é bem facil de entender.

Vamos colocar as Mãos No Código.

Veja o Código que deve ser inserido dentro do Botão Pesquisar:

'Aqui é selecionado a Planilha com seus dados (Plan1) no nosso exemplo
    With Plan1.Range("A:A")
 
        'Aqui onde será digitado o que procurar
 
        Set C = .Find(TextBox2.Value, LookIn:=xlValues, LOOKAT:=xlWhole)
 
        'Aqui outra tomada de decisão, caso encontre sua pesquisa, será retornado nas caixas de textbox.
        If Not C Is Nothing Then
            TextBox2.Text = C.Offset(0, 1)
            TextBox3.Text = C.Offset(0, 2)
 
            'Fim da Pesquisa
        End If
 
        'Tomada de decisão em caso de não haver nenhum resultado
        If C Is Nothing Then
 
            'Sua mensagem ao usuário aqui
            MsgBox ("Nome Não Encontrado!!!"), vbOKOnly, ("Seu Aplicativo Pesquisando Dados")
        End If
 
        'Fim da Pesquisa
    End With

Sintam – se a vontade para inserirem no modelo anterior e modificarem como desejam.

Agora um bonus a todos do forum.

O botão Reset. É muito simples.
Vejam.

Basta inserirem um CommandButton e dentro dele o Código Abaixo.

' Aqui limpa os textbox
textbox2 = Empty
textbox3 = Empty

Lembrando a todos que de agora em diante você já pode desenvolver seus aplicativos sem erros e bem pessoais.
Um detalhe, não podemos limpar o Número gerado no textbox1, face que, o mesmo é fruto de um código automatico.

Então galera. espero ter ajudado mais uma vez.

Ainda fico devendo os botões de Editar e Excluir.

Até nosso proximo Post.

Tecnologia – Open Source, Software Livre e Software Proprietário, um entendimento

Open não é Free, entendeu?
Open não é Free, entendeu?

Tem pouco tempo, precisei fazer um comparativo sobre software proprietário e software open. Por todos os anos que trabalho na área, era algo que parecia estar bem claro, mas foi aí que me enganei. Onde estava o erro? Acredito que o relato abaixo deixa isso bem claro, produzido justamente para ser esclarecedor nesse aspecto.

Open Source, Software Livre e Software Proprietário

É importante esclarecer que o modelo Open Source (Software Aberto) não quer dizer necessariamente Free Software (Software Livre), ou mesmo gratuito. Um software Open Source é essencialmente aquele que traz consigo o acesso a seu código fonte, oferecendo a vantagem de poder estendê-lo conforme a necessidade. De qualquer forma, é comum reconhecer um software dito “Open Source” principalmente por sua característica de não haver custos de uso ou licenciamento.

Para as justificativas abaixo, entende-se como software Open Source aquele que além de ser código aberto, também ser gratuito.

Para uma justa comparação, abaixo é descrita, segundo especialistas (ver referências abaixo), as principais vantagens e desvantagens do modelo Open Source:

  • Custo: Mesmo quando paga, a alternativa Open Source no Mercado acaba sendo mais em conta quanto ao custo de licenciamento quando comparada a uma licença de software comercial compatível.
  • Suporte: O software Open Source comumente carrega consigo uma comunidade leal, que fornece a maior parte das inovações, correções e incrementos que o software precisa ter ao longo de seu amadurecimento. Porém, não existe um compromisso efetivo de que determinada característica será aplicada conforme a demanda da solução. O resultado disso é a necessidade da composição de uma equipe especializada neste software.
  • Inovação: O software Open Source, por trazer o código aberto e disponível, torna-se flexível quanto a incrementos de funcionalidade e customizações. Também por isso, este está sempre compatível com as soluções mais atuais do mercado. Como no caso do suporte, carece de uma equipe especializada.
  • Usabilidade e Documentação: Como um software Open Source é feito essencialmente por especialistas de TI, sua qualidade prima pela funcionalidade do código, mas deixa a desejar nos demais aspectos, sendo um dos destaques, a usabilidade. Isso também resulta na produção de documentação e manuais, quando há, já que este não é um requisito do software Open Source, este é em nível muito técnico para ser facilmente entendido pelo usuário final da aplicação.
  • Segurança: A segurança é muitas vezes uma preocupação para as empresas porque o software Open Source não é sempre desenvolvido considerando um ambiente controlado. Com os usuários em todo o mundo colaborando no desenvolvimento, há uma falta de continuidade e sentido comum que impede a comunicação eficaz. Não há garantia de que o software tenha sido revisado ou validado seguindo um conjunto mínimo de critérios de segurança ou normas aplicáveis, podendo inclusive existir a implantação de códigos maliciosos ou brechas de segurança, pela natureza aberta da participação dos voluntários na codificação. Uma maneira de reduzir este risco potencial é a adoção de marcas reconhecidas no mercado, com uma equipe de desenvolvimento concentrado e com o apoio de uma forte comunidade online. Ainda na ótica de segurança, pelo código ser aberto, uma falha descoberta e divulgada pode ser facilmente explorada, o que é uma desvantagem em potencial.

Em contrapartida, para software de código fechado ou Proprietário:

  • Custo: Dependendo da complexidade do sistema, o custo pode variar entre alguns incluindo uma taxa de base para a integração, software e serviços e licenciamento e suporte. Embora o custo possa ser significativo, o resultado é um produto mais personalizado a partir de uma marca de confiança, níveis de segurança e funcionalidades adequados, garantia de atualização, escalabilidade, treinamento e suporte contínuos e uma menor exigência de habilidades técnicas.
  • Suporte: É provavelmente a maior vantagem de usar software proprietário. Apoio contínuo é um ponto de destaque para usuários não técnicos e um dos principais motivos pelos quais estes escolhem este tipo de licenciamento. O suporte inclui manuais do usuário, suporte, assistência imediata de empresas viáveis, com especialistas que estão intimamente familiarizados com os produtos e serviços.
  • Inovação: Alguns vêem a incapacidade de visualizar ou alterar o código-fonte em software de código proprietário ou fechado como uma desvantagem quando comparada com a flexibilidade do software Open Source, já que não há neste, restrições. No entanto, esta restrição garante a segurança e a confiabilidade do software proprietário, que só é seriamente comercializado após ter passado por uma rigorosa bateria de testes. Uma vez mais, software personalizado está disponível para usuários específicos. Ao contrário de código aberto, o software proprietário também atrai grandes quantidades de fornecedores, a fim de regular oferecer novos produtos e atualizações.Como o software Open Source, o software proprietário também tem dedicado comunidades on-line que compartilha ideias e estratégias através de fóruns e pesquisas, promovendo a inovação e permitindo que o produto se adapte à evolução das necessidades.
  • Usabilidade: A usabilidade é um ponto de destaque para o software proprietário devido a testes de usabilidade especialista e visa atingir um público mais segmentado. Manuais do usuário também são fornecidos para a referência imediata e treinamento rápido, enquanto os serviços de apoio e suporte ajudam a maximizar o uso do software. Sistemas de terceiros e desenvolvedores também são capazes de usar uma variedade de mecanismos para melhorar o software de código “fechado”.
  • Segurança: O software proprietário é visto como mais seguro porque é desenvolvido em um ambiente controlado por uma equipe concentrada e com uma direção comum. Esta equipe é o único grupo que pode visualizar ou editar o código-fonte, que é fortemente auditado e o risco de trojans, backdoors ou erros são reduzidos (embora não existe sistema de segurança pode seja perfeito).

Finalizando o raciocínio, o software Open Source é capaz de oferecer o mesmo nível de qualidade de um software proprietário. Porém, como não há garantia de fornecimento de serviço e suporte para estes no mercado, para que o nível de qualidade seja mantido, é recomendado uma equipe própria e especializada nas tecnologias escolhidas, o que exigiria montagem da equipe e respectiva capacitação para geração de toda a documentação a aplicação de suporte necessário.


É claro que esta é uma visão, e como todas elas, tendem a caducar conforme o tempo passa e evolução natural da coisas toma seu rumo. O Open Source se torna cada vez mais maduro, enquanto o Software Proprietário está cada vez mais aberto. O Software Livre sim, por ser um conceito, é algo que dificilmente tende a mudar.

Rerefências

http://www.gnu.org/philosophy/free-sw.html

VBA – Numeração Automática no Form

Olá Meu Amigos.

Venho compartilhar com vocês informações detalhadas e manifestar os créditos ao site, ao blog, ao Tomas que tem sido de grande ajuda nos meus projetos de desenvolvimento em VBA.

Hoje vou tratar com vocês um topico que gostei muito e que ajudara muitos que necessitam desta ajuda.

Form com Numeração Automatica

Fiz algo bem simples onde todos possam entender com facilidade e aprender a fazer o mesmo para ter um controle numerico em seus forms de forma rapida e simples.

Bom, vamos colocar a mão nos códigos.
1º Vou descrever todo o codigo aqui e em seguida vou comentar e ensinar tudo de forma bem explicada a todos.
Código:

' Aqui é um botão de comando, que iniciara a gravação do mesmo, lembre - se, este codigo deve ser inserido dentro do botão.
' Este codigo pode ser copiado aqui e inserido diretamente em seu form, pois o mesmo já se encontra comentado.
 
Private Sub CommandButton1_Click()
    Dim cod
    ' Adicionar dados na planilha ( Nesta parte, o codigo selecionará a Plan1 e gravará seus dados).
    Sheets("Plan1").Select
 
    'Aqui o codigo seleciona a linha em branco e inicia a gravação
    ' lembre se que poderá ser necessário a digitação de um zero (0) na primeira linha para iniciar a gravação já que os numeros começam com zero.
    Range("A60000").End(xlUp).Offset(1, 0).Select
 
    ' Veja no detalhe que você necessitará de 02 TextBoxs para inserir os dados, sendo necessario mais campos siga o exemplo abaixo, insira novos TextBoxs e coloque a 'seguencia desejada abaixo
 
    ActiveCell.Offset(0, 0).Value = Me.TextBox1.Value
    ActiveCell.Offset(0, 1).Value = Me.TextBox2.Value
 
    ' Apos adiconar os dados na planilha limpa o campo
    Me.TextBox2 = Empty
 
    ' Atualizar a auto-numeração lembrado que caso queira adicionar um label, troque a opção textbox1 pelo seu label
    cod = Range("A60000").End(xlUp).Offset(0, 0).Value
 
    'Aqui eis nosso contador automatico responsável pela contagem e numeração automatica.
    Me.TextBox1 = cod + 1
 
    'Final do botão salvar ou comand button 1
End Sub
 
'Aqui vamos iniciar a numeração sempre que o form for iniciado
Private Sub UserForm_Activate()
    Dim cod
 
    ' Ativa a auto numeração no Form
    Sheets("Plan1").Select
 
    cod = Range("A60000").End(xlUp).Offset(0, 0).Value
 
    ' Aqui está nosso contador atuando sempre e atualizando a cada gravação
    Me.TextBox1 = cod + 1
End Sub
 
 
' Aqui vamos iniciar um detalhe que sempre havia me deixado de cabelo em pé ( Como iniciar o cursor onde quero começar)
 
Private Sub UserForm_Initialize()
 
' inicializa no campo que deve ser digitado (Aqui entendi onde está o truque)
    Me.TextBox2.SetFocus
End Sub
  • Mas e agora você se pergunta:
  • O textBox2 está garvando em branco, o que fazer para torna-ló obrigatório?
  • Caso se pequem perguntando sobre este fato ou bem como o que fazer, não se desesperem, vou lhes mostar a solução.

No textbox2, que sempre gravará em branco, vamos bloquear está ação, assim, o comando só será executado após a inserção de dados no textbox2. O codigo é simples. Vamos lá!

'Aqui sendo o textbox vazio, o VBA retornará a mensagem de campo obrigatório e dará o foco a este campo e você necessitando, poderá inserir o mesmo em quantos campos necessitar.
If TextBox2.Text = "" Then
    MsgBox ("Campo Obrigatório 'Nome do campo'"), vbOKOnly, ("Sua Mensagem Aqui")
 
    'Foco na caixa de texto em branco!
    TextBox2.SetFocus
    Exit Sub
End If

Lembre se que este procedimento deve ser inserido no botão de gravação ficando desta forma o codigo completo de sua aplicação.

Aqui está tudo completo.

Basta copiar o codigo abaixo, colar em um form vazio, inserir 02 TextBox e 02 ComandButton e veja o resultado.

Private Sub CommandButton1_Click()
    Dim cod
    ' Adicionar dados na planilha
    'Aqui vai o campo obrigatório
 
    If TextBox2.Text = "" Then
        MsgBox "Campo Obrigatório 'Nome do campo'"
        TextBox2.SetFocus
        Exit Sub
    End If
 
    Sheets("Plan1").Select
    Range("A60000").End(xlUp).Offset(1, 0).Select
    ActiveCell.Offset(0, 0).Value = Me.TextBox1.Value
    ActiveCell.Offset(0, 1).Value = Me.TextBox2.Value
 
    ' Apos adiconar os dados na planilha limpa o campo
    Me.TextBox2 = Empty
 
    ' Atualizar a auto-numeração
    cod = Range("A60000").End(xlUp).Offset(0, 0).Value
    Me.TextBox1 = cod + 1
 
End Sub
 
Private Sub UserForm_Activate()
    Dim cod
    ' Ativa a auto numeração no Form
    Sheets("Plan1").Select
    cod = Range("A60000").End(xlUp).Offset(0, 0).Value
    Me.TextBox1 = cod + 1
End Sub
 
Private Sub UserForm_Initialize()
' inicializa no campo de deve ser digitado
    Me.TextBox2.SetFocus
End Sub
 
'Códido do Botão Finalizar
 
Private Sub CommandButton2_Click()
    Unload Me
End Sub

No proximo topico, vou lhes mostar uma ação com as opções de escolha (Sim e Não) e comentar para que todos possam entender a ação tomada de acordo com a resposta e as mensagens personalizadas que serão um show no seu form e sendo assim, um grande diferencial do seu sistema.

Até Breve.

Obrigado a todos.