Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por SandroLima
#35276
Bom dia, amigos forumeiros

Poderiam me ajudar?

Comecei a escrever um código para um formulário de cadastro... no entanto o banco de dados encontra-se na forma de tabela.
Enquanto não era tabela deu certo. O que eu devo modificar na escrita do código nesse caso? Como declarar as variáveis e objetos?
Código: Selecionar todos
Private Sub cmb_Cadastrar_Click()

Dim ulinha As Long

ulinha = Worksheets("CLIENTES").Cells(Worksheets("CLIENTES").Rows.Count, 1).End(xlUp).Rows + 1


Cells(ulinha, 1).Value = Me.txt_ID
Cells(ulinha, 2).Value = Me.txt_Data
Cells(ulinha, 3).Value = Me.txt_Nome
Cells(ulinha, 4).Value = Me.txt_DataNasc
Cells(ulinha, 5).Value = Me.txt_Idade
Cells(ulinha, 6).Value = Me.cbb_Sexo
Cells(ulinha, 7).Value = Me.txt_CPF
Cells(ulinha, 8).Value = Me.txt_Naturalidade
Cells(ulinha, 9).Value = Me.cbb_UF_Nat
Cells(ulinha, 10).Value = Me.txt_Telefone

Columns.AutoFit
MsgBox "Cadastro efetuado com sucesso.", vbInformation, "Cadastro de Paciente"

Me.txt_ID = Empty
Me.txt_Data = Empty
Me.txt_Nome = Empty
Me.txt_DataNasc = Empty
Me.txt_Idade = Empty
Me.cbb_Sexo = Empty
Me.txt_CPF = Empty
Me.txt_Naturalidade = Empty
Me.cbb_UF_Nat = Empty
Me.txt_Telefone = Empty

txt_Data.SetFocus

End Sub
Preciso na ajuda do código para as seguintes necessidades:

1) Gerar ID automático
2) Ao digitar somente os números na TextBox DATA que ela já escreva no formato dd/mm/aaaa na própria TextBox . O mesmo vale para a TextBox data de nascimento.
3) Na TextBox Idade calculasse automaticamente a idade em anos e meses
4) A TextBox CPF aparecesse com a formatação automática para CPF ou CNPJ ao digitar os números
5) E por fim que a TextBox TELEFONE aparecesse com a formatação automática para 9 ou 8 dígitos após DDD E.: (##) # ####-####
6) Ao final ordenar os registros no banco de dados pelo nome do cliente através do código VBA.
Se possível deixar na forma de comentário como ficaria essa linha caso em vez de ordenar pelo nome eu quisesse ordenar pela data de cadastro - cadastros mais recentes no início (topo) da tabela.

Envio a planilha com o formulário em anexo se for preciso para alteração.

Muito obrigado a quem puder ajudar.
Você não está autorizado a ver ou baixar esse anexo.
Por SandroLima
#35298
Boa tarde, JCabral. Boa tarde, demais colegas do fórum.

Obrigado pela atenção e rápida colaboração. E eu achando q estava indo bem nas primeiras escritas de código rsrs.

Que código é esse, mano?!?! Muito legal... me deu vontade de estudar ainda mais. Onde tiver oportunidade de deixar comentado é sempre bem-vindo e agradeço demais.

Estou testando aqui o código e me deparei com algumas situações que gostaria mais uma vez de sua ajuda ou quem mais puder colaborar.

1) Na TextBox DATA reparei que ao digitar o 2º caracter (número) ele adiciona um traço e desabilita a tecla NumLock (isso somente acontece ao fazer o primeiro registro ao abrir a planilha... nos registros seguintes isso não acontece)
Também notei que a tecla BackSpace (não apaga os "-" somente os números). O mesmo acontece na TextBox DATA NASC.
É possível corrigir isso?

2) No campo idade eu fiz uma alteração para inserir a palavra "anos" após o valor numérico... mas não soube como acrescentar a diferença entre os meses da data de cadastro e nascimento. Também seria interessante a opção de acrescentar a palavra mês (no singular) caso a diferença seja igual a 1 e meses caso seja superior a 1.

3) Na TextBox CPF gostaria que também estivesse habilitado para receber a formatação de CNPJ "##.###.###/####.##" uma vez que o cliente também pode ser Empresa.

4) Na TextBox Telefone se o número possuir o nono dígito ele perde a formatação (##) # ####-####. Quando o número possui 8 dígitos ele insere com a formatação correta (##) ####-####.

5) E como última consideração notei que ele não conta o último ou maior valor de registro (ID) do Banco de Dados... ele conta a última linha e com isso permite que um número de registro fique duplicado caso algum registro anterior tenha sido apagado como fiz em uma simulação (vou mandar em anexo a simulação).

Envio a planilha novamente com a simulação das situações acima relatadas.

E meu muito obrigado desde já.
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord