Tag Archives: Fórum

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.

Modelos Prontos – Módulo Orçamento 2.0 em Excel VBA

Lembram do LEANDRO ALVES, aquele do post anterior? Pois é, lá vem ele de novo com boas notícias!

Olá Pessoal do fórum,

Acabei de concluir esta nova versão do Módulo Orçamento e estou deixando aqui para quem quiser utilizar, modificar, questionar, criticar ou elogiar.

Ao meu ver ficou bem legalzinho. Me parece que a versão anterior foi bem aceita (3.423 downloads até agora, 27.08.2012 – 09:47 a.m. http://bit.ly/Pko4YG), quem sabe a galera acaba gostando desta versão também .

Este faz basicamente as mesmas coisas que o outro faz, porém está com um layout diferenciando (podemos conferir na figura abaixo) e conta com alguns tratamentos de erros, evitando perda dos dados digitados (erro não verificado na versão anterior). Nos testes que fiz não encontrei bugs, mas isso não quer dizer que está totalmente livre dos mesmos, aos poucos vamos aperfeitçoando juntos. Como recebi algumas mensagens pendido para fazer o Módulo Orçamento com banco de dados separado, resolvi adaptálo para Excel+Acces porque este é um tema que tem sido muito discutido aqui no fórum e eu achei interessante fazê-lo assim.

Espero que gostem. Conforme a versão anterior, este não faz busca de produtos em banco de dados, ele salva no banco de dados as informações digitadas. A parte mais legal que eu acho é a parte dos cálculos, onde o usuário pode digitar a quantidade do produto, seu preço de custo e partir daí decidi se vai digitar a Margem de lucro ou preço final, optando por qualquer um, o resto é por conta do aplicativo. Isto também funciona com o total do orçamento e descontos, vale a pena fazer um teste.

Outra coisa que incluí neste projeto e aqui ainda não tinha visto em vba é que ele reconhece automaticamente quando um orçamento salvo foi alterado ou não e antes do form ser encerrado é aprensentado aquela velha mensagenzinha notificando que o orçamento ainda não foi salvo e pergunta se deseja salvar (é semelhante aquela mensagenzinha do Office).

Nos testes que fiz isso funcionou direitinho também. E para incluir um produto? Antes tinha o “botão Incluir”. Muito bem, preencha todos os campos do produto a ser incluído e pressione “Enter” ou “Tab” no último textbox que o produto é incluso automaticamente. Para editar um produto, deve-se selecionar um produto no grid e dar duplo click ou pressionar “Enter”. Para apagar basta selecionar algum produto no grid e pressionar “Delete” e o M.Orçamento pedirá a confirmação. Temos também o labelLink que dispara o formulário para cadastrar dados da empresa, possibilitando assim a impressão de um orçamento personalizado. Outros detalhes a mais fica por conta da curiosidade. Espero que apreciem.

É com imenso prazer que lhes apresento o Módulo Orçamento 2.0, fruto de conhecimentos adquiridos aqui no fórum do Tomáz Vasquez.

Módulo Orçamento 2.0
Módulo Orçamento 2.0

ModuloOrçamento2.0.rar
(138.18 KiB)

Admito que na última parte, fiquei até com vergonha. O link para discussão no fórum é:

http://www.tomasvasquez.com.br/forum/viewtopic.php?f=23&t=2155

Bom proveito!

Dicas – Free Lancers, Excel, VBA e outras oportunidades

Freelancer

Já tem algum tempo que falei sobre isso, não exatamente aqui, comumente “grito” nas redes sociais a respeito, seja no Twitter, Facebook e outras menos ou mais expressivas (já estou zanzando pelo Google+).

Como o blog tem ido bem, graças a você querido leitor, são constantes os pedidos de serviço que me chegam na caixa de email. Isso é bom e agradeço a todos pela confiança. Mas, a vida é injusta e sou apenas um.

😉

Enfim, como ser humano limitado que sou e incapaz de atender a todos os pedidos de serviço, criei no nosso fórum um subfórum dedicado a facilitar o contato entre aqueles que solicitam serviços de consultoria ou criação de aplicativos em Excel e VBA e claro, aqueles que fornecem! O endereço do fórum é:

Fórum de Freelancers e Serviços

http://www.tomasvasquez.com.br/forum/viewforum.php?f=21

Para quem quiser seguir o fórum por RSS, basta usar a URL abaixo:

http://www.tomasvasquez.com.br/forum/feed.php?f=21

A intenção é ser um ponto de encontro entre os profissionais da área. Até hoje não vi nada que conecta-se tais profissionais. É um começo. Profissionais de Excel, VBA e outras tantas aplicações do Microsoft Office, e também que precisa deles, sejam bem vindos!

Forte abraço e sucesso a todos!

VBA – Índice/Menu no TreeView

Mais uma obra do nosso fórum, desta vez, pelo nosso colega joseA (que pode sinal, anda bem famoso  por lá).

O TreeView é praticamente o controle mais desejado, e menos usado no VBA. Como os exemplos são pouco comuns, o exemplo disponibilizado é de extrema valia:

MenuTreeView pelo colega joseA
MenuTreeView pelo colega joseA

Download do arquivo

MenuTreeView.zip (16.03 KiB)

Um bom proveito a todos e valeu joseA!