Sorry, this entry is only available in Português.
Tag Archives: Modelos
(Português) Modelos – Cadastro de Membros com Relatório de Aniversários
VBA – Modelo De Cadastro de Cheque
Salve Galera.
Como prometido, aqui esta um dos meus modelos completos para que todos possam conhecer um pouco mais do meu trabalho em VBA.
Cadastro simples para cheques. Vamos Botar As Mãos No Código.
Dessa vez vou deixar sem descrever os textboxs e os label, então, espero que todos adaptem o código às suas necessidades. São ao todo:
- 11 TextBoxs
- 01 ComboBox
- 07 Botões de comando
O restante é com vocês, detalhe: vou comentar para que todos possam entender cada parte do código.
Código:
' Ai vai o código, não se assustem galera, faz parte mesmo.Dim registros As Integer ' Aqui a variavel global Dim registros As Integer ' Aqui esta o comando responsavel por buscar as informações Private Sub Command_buscar_Click() 'Verificar se foi digitado um nome na primeira caixa de texto If Text_codigo.Text = "" Then MsgBox ("Digite Um Codigo Válido"), vbInformation, ("Sistema Live - Free") Text_codigo.SetFocus GoTo Linha1 End If With Worksheets("Cartao").Range("A:A") Set c = .Find(Text_codigo.Value, LookIn:=xlValues, LookAt:=xlPart) If Not c Is Nothing Then 'Repare na localização e os nomes dos textboxs abaixo Text_codigo.Value = c.Value Text_nome.Value = c.Offset(0, 1).Value Text_cpf.Value = c.Offset(0, 2).Value Text_rg.Value = c.Offset(0, 3).Value Text_agencia.Value = c.Offset(0, 4).Value Combo_banco.Value = c.Offset(0, 5).Value Text_conta.Value = c.Offset(0, 6).Value Text_digito.Value = c.Offset(0, 7).Value Text_de.Value = c.Offset(0, 8).Value Text_ate.Value = c.Offset(0, 9).Value Text_tempocc.Value = c.Offset(0, 10).Value Text_situacao.Value = c.Offset(0, 11).Value Else MsgBox ("Este Cadastro Não Foi Localizado!!"), vbInformation, ("Sistema Live - Free") Text_codigo.SetFocus End If End With Linha1: End Sub ' Aqui o comando Cadastrar Private Sub Command_cadastrar_Click() 'Resposta sim e não - tomada de decisão, lembram? Dim Reposta As String Reposta = MsgBox("Deseja Cadastrar Os Dados Agora?", vbYesNo, "Sistema Live - Free") If Reposta = vbYes Then ' Nome da pasta onde sera gravado os dados Registro = Worksheets("Cartao").UsedRange.Rows.Count + 1 ' Primeira Parte do codigo, neste exemplo usei a plan14, no seu caso basta mudar para o numero da sua ' plan que vc renomeiou para (Cartao) seu o (~) 'Repare que os textboxs mudam de posição a cada linha e ação desejada Plan14.Cells(Registro, 1) = Me.Text_codigo Plan14.Cells(Registro, 2) = Me.Text_nome Plan14.Cells(Registro, 3) = Me.Text_cpf Plan14.Cells(Registro, 4) = Me.Text_rg Plan14.Cells(Registro, 5) = Me.Text_agencia Plan14.Cells(Registro, 6) = Me.Combo_banco Plan14.Cells(Registro, 7) = Me.Text_conta Plan14.Cells(Registro, 8) = Me.Text_digito Plan14.Cells(Registro, 9) = Me.Text_de Plan14.Cells(Registro, 10) = Me.Text_ate Plan14.Cells(Registro, 11) = Me.Text_tempocc Plan14.Cells(Registro, 12) = Me.Text_situacao ' Aqui um segredo, o auto ajuste das colunas na gravação de dados Plan14.Range(Columns(2), Columns(12)).AutoFit MsgBox ("Cadastro Efetuado Com Sucesso!"), vbInformation, ("Sistema Live - Free") 'Limpando os textos digitados Me.Text_codigo.Text = "" Me.Text_nome.Text = "" Me.Text_cpf.Text = "" Me.Text_rg.Text = "" Me.Text_agencia.Text = "" Me.Combo_banco.Text = "" Me.Text_conta.Text = "" Me.Text_digito.Text = "" Me.Text_de.Text = "" Me.Text_ate.Text = "" Me.Text_tempocc.Text = "" Me.Text_situacao.Text = "" Me.Text_nome.SetFocus End If ' Resposta não - tomada de decisão If Reposta = vbNo Then Me.Text_codigo.Text = "" Me.Text_nome.Text = "" Me.Text_cpf.Text = "" Me.Text_rg.Text = "" Me.Text_agencia.Text = "" Me.Combo_banco.Text = "" Me.Text_conta.Text = "" Me.Text_digito.Text = "" Me.Text_de.Text = "" Me.Text_ate.Text = "" Me.Text_tempocc.Text = "" Me.Text_situacao.Text = "" Me.Text_nome.SetFocus MsgBox ("Seus Dados Não Foram Gravados"), vbInformation, ("Sistema Live - Free") End If Me.Command_cadastrar.Enabled = False End Sub ' Aqui esta o comando editar, tão procurado e desejado no mundo VBA Private Sub Command_editar_Click() ' Tomada de decisão Dim Reposta As String Reposta = MsgBox("Deseja Realmente Editar Agora?", vbYesNo, "Sistema Live - Free") If Reposta = vbYes Then Registro = Me.Text_codigo.Text ' Segunda Parte Plan14.Cells(Registro, 1) = Me.Text_codigo Plan14.Cells(Registro, 2) = Me.Text_nome Plan14.Cells(Registro, 3) = Me.Text_cpf Plan14.Cells(Registro, 4) = Me.Text_rg Plan14.Cells(Registro, 5) = Me.Text_agencia Plan14.Cells(Registro, 6) = Me.Combo_banco Plan14.Cells(Registro, 7) = Me.Text_conta Plan14.Cells(Registro, 8) = Me.Text_digito Plan14.Cells(Registro, 9) = Me.Text_de Plan14.Cells(Registro, 10) = Me.Text_ate Plan14.Cells(Registro, 11) = Me.Text_tempocc Plan14.Cells(Registro, 12) = Me.Text_situacao MsgBox ("Dados Editados Com Sucesso!"), vbInformation, ("Sistema Live - Free") Me.Text_codigo.Text = "" Me.Text_nome.Text = "" Me.Text_cpf.Text = "" Me.Text_rg.Text = "" Me.Text_agencia.Text = "" Me.Combo_banco.Text = "" Me.Text_conta.Text = "" Me.Text_digito.Text = "" Me.Text_de.Text = "" Me.Text_ate.Text = "" Me.Text_tempocc.Text = "" Me.Text_situacao.Text = "" Me.Text_nome.SetFocus End If ' Resposta não- tomada de decisão If Reposta = vbNo Then Me.Text_codigo.Text = "" Me.Text_nome.Text = "" Me.Text_cpf.Text = "" Me.Text_rg.Text = "" Me.Text_agencia.Text = "" Me.Combo_banco.Text = "" Me.Text_conta.Text = "" Me.Text_digito.Text = "" Me.Text_de.Text = "" Me.Text_ate.Text = "" Me.Text_tempocc.Text = "" Me.Text_situacao.Text = "" Me.Text_nome.SetFocus MsgBox ("Seus Dados Não Foram Editados E Não Foram Cadastrados!"), vbInformation, ("Sistema Live - Free") End If End Sub ' Aqui está o comando excluir - Aeeeeeeeeeeee Laiaaaaaaaaaaa............ Private Sub Command_excluir_Click() ' Tomada de decisão Dim Reposta As String Reposta = MsgBox("Deseja Realmente Excluir O Registro Informado?", vbYesNo, "Sistema Live - Free") If Reposta = vbYes Then ' Lembre - se de mudar a plan aqui tambem Plan14.Range("A" & Me.Text_codigo).EntireRow.Delete MsgBox ("Dados Excluidos Com Sucesso Do Sistema!"), vbInformation, ("Sistema Live - Free") End If If Reposta = vbNo Then MsgBox ("Seus Dados Não Foram Excluidos!"), vbInformation, ("Sistema Live - Free") Me.Text_codigo.Text = "" Me.Text_nome.Text = "" Me.Text_cpf.Text = "" Me.Text_rg.Text = "" Me.Text_agencia.Text = "" Me.Combo_banco.Text = "" Me.Text_conta.Text = "" Me.Text_digito.Text = "" Me.Text_de.Text = "" Me.Text_ate.Text = "" Me.Text_tempocc.Text = "" Me.Text_situacao.Text = "" Me.Text_nome.SetFocus End If End Sub ' Comando Limpar os dados Private Sub Command_limpar_Click() Me.Text_codigo.Text = "" Me.Text_nome.Text = "" Me.Text_cpf.Text = "" Me.Text_rg.Text = "" Me.Text_agencia.Text = "" Me.Combo_banco.Text = "" Me.Text_conta.Text = "" Me.Text_digito.Text = "" Me.Text_de.Text = "" Me.Text_ate.Text = "" Me.Text_tempocc.Text = "" Me.Text_situacao.Text = "" Me.Text_nome.SetFocus End Sub ' Habilitar o botão novo cadastro - Ufa já tamo acabando galera, paciência ai e muita calma nessa hora. Private Sub Command_novo_Click() Me.Command_cadastrar.Enabled = True Me.Text_codigo.Text = "" Me.Text_nome.Text = "" Me.Text_cpf.Text = "" Me.Text_rg.Text = "" Me.Text_agencia.Text = "" Me.Combo_banco.Text = "" Me.Text_conta.Text = "" Me.Text_digito.Text = "" Me.Text_de.Text = "" Me.Text_ate.Text = "" Me.Text_tempocc.Text = "" Me.Text_situacao.Text = "" ' Sua pasta que recebera os dados Registro = Worksheets("Cartao").UsedRange.Rows.Count + 1 Me.Text_codigo = Registro Me.Text_nome.SetFocus End Sub Private Sub Command_sair_Click() Unload Me End Sub ' Aqui o campo CPF - olha que coisa fera! Private Sub Text_cpf_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Limita a Qde de caracteres Text_cpf.MaxLength = 14 Select Case KeyAscii Case 8, 48 To 57 ' BackSpace e numericos If Len(Text_cpf) = 3 Or Len(Text_cpf) = 12 Then Text_cpf.Text = Text_cpf.Text & "." SendKeys "{End}", False ElseIf Len(Text_cpf) = 7 Then Text_cpf.Text = Text_cpf.Text & "." ElseIf Len(Text_cpf) = 11 Then Text_cpf.Text = Text_cpf.Text & "-" SendKeys "{End}", False End If Case Else ' o resto é travado KeyAscii = 0 End Select End Sub ' Letra sempra maiuscula no nome - UHUUUUUUUUUUUUUU! Private Sub Text_nome_Change() Text_nome.Value = UCase(Text_nome.Value) End Sub Private Sub Text_situacao_Change() Text_situacao.Value = UCase(Text_situacao.Value) End Sub ' Than Than, por fim o combo que carrega os bancos, Fera demais galera... Private Sub UserForm_Initialize() ' Bancos Combo_banco.AddItem "Banco Do Brasil" Combo_banco.AddItem "Caixa Economica Federal" Combo_banco.AddItem "Bradesco" Combo_banco.AddItem "Itau" Combo_banco.AddItem "Bamerindus" Combo_banco.AddItem "Santander" Combo_banco.AddItem "Banco Real" Combo_banco.AddItem "Citibank Brasil" Combo_banco.AddItem "Banco Mercantil Do Brasil" Combo_banco.AddItem "Outro..." ' Aqui onde se inicia ao iniciar o form Me.Text_nome.SetFocus End Sub |
Ufa! Quanta novidade! Espero que todos gostem e estou sempre a disposição pra ajudar a todos.
Agradeço também pela paciência de vocês em lerem meus posts e rirem um pouco das brincadeiras. Até nosso proximo post.
Abração 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.

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!