Userform
Levando ao pé da letra a tradução de userform, a gente tem aqui um formulário para o usuário.
Isso vai servir para a gente, basicamente, para melhorar os nossos programas, no sentido de: a gente pode pedir dados por userform, não precisa mais ficar pedindo por inputbox.
A gente pode enviar respostas também por userform, ao invés de ficar pedindo...
Enviando, na verdade, por messagebox.
E aí, a gente vai ter uma interface muito legal que a gente monta com o nosso usuário.
Seguinte, ressalto aqui que a gente está trabalhando com windows nesse momento.
Basicamente porque se sobressaiu as ferramentas, foram mais fáceis de trabalhar e tudo mais.
Então a gente recomenda, também, que vocês estejam no windows para trabalhar com userform.
Seguinte, vamos começar inserindo userform.
A gente está aqui naquela barrinha superior aqui do nosso programa em VBA, das nossas macros.
A gente vai usar o botão de inserir e, depois de inserir, gente tem várias coisinhas: módulo, procedimento e userform.
A gente vai optar por userform.
Ele insere, aqui para a gente, uma janelinha vazia, uma caixinha vazia que nem aquelas que aparecem no Windows.
E, também, aqui na lateral, no explorador do projeto, ele insere aqui, em formulários, uma caixinha com o userform dentro.
Se você criar mais um, ele vai fazer basicamente a mesma coisa.
Só que ele vai colocar userform dois Então você pode criando quantos você precisar.
Essencialmente, a gente vai trabalhar com um aqui, e o ponto vai ser o seguinte: vamos começar a fazer uma coisa bobinha: usando os controladores...
Os controles que a gente tem aqui em baixo.
Ponto importante, posso fechar esses controles, e depois para abri-los novamente, eu vou usar essa caixinha aqui.
Perdão, essa caixinha aqui, ó.
Essas ferramentas aqui.
Então a gente vai botar… A gente vai clicar aqui em caixa de ferramentas e ela vai voltar a aparecer, tá?
É normal a gente fechar sem querer isso, tá?
Então um ponto importante.
Primeira coisa: vou inserir, simplesmente, uma caixinha de texto.
Então, dos controladores que a gente vai usar aqui, o primeiro deles é esse rótulo, textinho.
Cliquei nele, eu posso arrastar aqui dentro e inserir o rótulo.
Então ele insere, e para editar um texto que está aqui dentro, eu posso dar um clique em cima, e ele vai abrir o modo de edição e eu posso substituir o texto dele por, por exemplo, N igual, certo?
Por que N igual?
Vamos fazer um programinha aqui, juntos.
Um programinha que preencha N linhas de uma...
numericamente.
Então se eu falo que N é setenta, ele vai preencher da linha um até a setenta com os números um, dois, três, quatro, cinco, seis, sete, um por vez, certo?
Então esse é o objetivo bobo de um programa para a gente criar juntos agora.
Então aqui N é igual.
E aí, eu tenho que inserir na frente desse N igual, que é só um textinho...
Então vou executar para gente vai como está ficando.
Executar o userform, é só clicar no botãozinho verde, tá?
Normal de executar, e ele vai aparecer aqui para mim.
Você percebe que só apareceu um textinho, não tem o que fazer, não tem onde a gente digitar nada, nenhum valor.
Então, para entrar com um dado, eu vou vir aqui e vou usar esse botãozinho, ABL, se eu não me engano, não dá para saber o que que é.
Caixa de texto, certo?
Cliquei nele, eu posso inserir então arrasta aqui em cima para inserir.
E insiro uma caixinha de texto.
Então agora, tenho tanto rótulo, quanto a caixinha de texto.
Então, executando, olha como está.
A gente tem aqui, agora, onde digitar as coisas.
Então eu posso digitar,
por exemplo, que eu quero quarenta e cinco linhas preenchidas, por exemplo, certo?
Então vamos continuar nosso programinha.
E aí, um ponto importante que a gente sempre vai ter um botão, porque o botão...
Ele faz as coisas.
Vocês percebem que, eu tinha como digitar o quarenta e cinco, mas não tinha um lugar para falar “faz e agora preenche”.
A gente vai usar o botão.
São basicamente esses três controles que a gente vai usar, tá, galerinha?
A gente vai usar: rótulo, caixinhas de entradas de texto e esse AB, que é um botão.
Então, a gente vai clicar nele, e vai arrastar aqui em baixo, eu gosto de botões bem grandes e quadradinhos.
E a gente pode inserir, aqui, um botão.
Clica uma vez, eu também consigo editar o texto dele.
Então, por exemplo, “preencher” coisa boba, tipo, basicamente o que a gente combinou que a gente ia fazer.
Então um botão cujo texto é “preencher”, eu clico nele e ele preenche.
Então aí, executo.
E olha aqui.
A gente já tem, basicamente, um layout completo.
“N igual”, vou colocar sessenta linhas.
Eu clico em preencher e ele vai fazer alguma coisa.
Por que ele não fez nada até agora?
Porque a gente tem que fazer, agora, a private sub está por trás do nosso userform.
O que é a private sub?
Muita informação nova, né?
A privat sub é, basicamente, a sub que é ativada quando aperta o botão.
Para achar essa sub, eu vou dar dois cliques no botão, rapidinho.
Ele vai abrir, para mim, uma aba que está por trás do userform, então ela não está nos módulos.
Então meu módulo está vazio.
Ela está aqui dentro do botão preencher.
Então eu dou dois cliques, e ela aparece de novo, tá?
Então se eu sair, fui para o userform dois e quero achá-la de novo, volto no userform um, dou dois cliques, porque está lá em background, ela está lá no fundo do botão.
Achei aqui, private sub, command button 1, underline click.
Esse é o nome da nossa private sub.
Você não precisa saber ela exatamente, tá?
Porque quando você clica em user, ele aparece de fato, então, você nunca cria essa sub.
E é private porque ela é basicamente privada, ela literalmente “do botão”, não serve para outra coisa.
E agora que a gente falou é: a gente vai preencher, certo?
As N linhas que são dadas naquela...
Usuário entra com elas aqui, e a gente preenche essas quantidades de linhas na coluna A, por exemplo.
Qual o nome dessa caixa de texto?
Porque eu preciso obter, aqui, a quantidade de N de dados, certo?
Então, vamos começar, aí já vou contando para vocês como a gente vai fazer isso.
Uma sub normal, qual era a regrinha?
Usou?
Dimensionou!
Vamos usar n?
Vamos usar n.
Então, dim N as integer, o que mais que a gente pode usar aqui dentro?
Para preencher um for, porque vai fazer setenta vezes.
A gente vai fazer um forzinho, dim i as integer.
E acho que, para preencher, não tem mais nada, né?
Só tem que usar isso mesmo.
Então, o que a gente vai fazer é: for i começando na um, então a gente pode começar na um, e ir até N… To N, certo?
E aí, o que vou fazer é: a cells i virgula um receber o i, porque na primeira rodada, ele vai receber um, na segunda, recebe dois, na tercera recebe três, e assim por diante, a gente vai preencher da um até a enésima mesma linha com os números na ordem em que elas… Que as células estão sendo preenchidas.
Basicamente é isso, só falta um detalhe que vocês devem estar se perguntando.
E se não perguntou, não tem problema também.
Como é que eu vou pedir o N?
Eu vou pedir por inputbox?
Não, né?
Porque se eu posso entrar com...
Se o M vai dar entrada aqui, por que é que eu vou pedir de novo de outro jeito?
Não tem porquê!
A gente vai aproveitar o N que a pessoa inseriu aqui.
E para descobrir como que eu vou fazer isso, é o seguinte: a gente vai vir aqui na lateral, cliquei, então está selecionado aqui minha caixinha, certo?
Cliquei aqui, olha que legal.
Name: TextBox1, é o nome dessa caixa.
Então volto nela...
Perdão, quando aparecem essas outras privates subs que não são do botão, você pode apagar, tá?
Não vai ser útil.
Não quero a private sub do textbox.
Só quero a do botão mesmo.
Para encontrar N, a gente vai usar as propriedades que estão em volta, que permeiam o userform.
E a principal propriedade é chamar as caixas de texto para obter o valor delas.
Como?
Vou falar que o N vai receber userform um, certo?
Porque userform um?
Tem dois userforms.
Se criar uma outra caixinha de texto lá, vai ter uma caixa...
Vai ter duas textbox um.
E aí, uma para cada userform.
Então tem que falar o caminho completo, userform um, ponto.
Coloquei um ponto, que é um ponto muito importante, certo?
Coloquei esse pontinho aqui.
Eu vou, agora, continuar o caminho.
Não é só isso, não quero que você olhe só para o userform um.
Eu quero que você olhe mais específico ainda, pelo textbox um, ele até me sugere aqui, eu posso dar dois cliques.
Userform um.
No userform um, eu quero textbox um.
E no textbox um, não quero qualquer coisa.
Eu quero o valor que está dentro dele, certo?
Então vou usar o value.
Ponto value.
Então o que é que eu fiz aqui?
N recebendo o valor, está no textbox um, que está no userform um, perfeito?
Bastante simples, né?
Isso tudo private sub do comando...
Do botão.
Executo aqui, apareceu aqui embaixo para mim.
Vou colocar um N grandão, só para ficar bem interessante.
Duzentos e cinquenta.
Clica em preencher, e a gente tem aqui preenchido para a gente.
As duzentos e cinquenta linhas.
Quando o userform tá aberto, eu não consigo clicar atrás dele.
Não consigo mexer nas células.
Então, para ver os nossos resultados, fecha o userform.
Ele vai voltar aqui no programinha, e o que eu vou fazer é: vou minimizar a janela do programa.
E olha que legal!
As duzentos e cinquenta linhas foram rapidamente preenchidas, um, dois, três, quatro, cinco, seis, e assim por diante.
Legal?
Então esse é o nosso programinha.
Programinha inicial.
E é assim que se chama.
Agora vamos...
Vamos causar um efeito mais legal ainda, que pode acontecer de você precisar, que é inserir um botão na planilha que chama o nosso userform.
Como isso vai acontecer?
Observem aqui o que a gente vai fazer.
Vou abrir aqui, nossas macros de novo, tá?
Exibi-las, vou criar uma qualquer aqui, só para abrir aquela janelinha nossa.
Então, a gente tem aqui um explorador de arquivo, certo?
O que eu vou fazer, eu tenho userform um certo?
Eu quero que quando eu o execute… Quando eu o executo, de fato, ele aparece assim, para mim.
Agora quero que tenha um botão na planilha que, quando eu clicar nesse botão, apareça o userform.
Para isso, a gente vai usar uma propriedade bastante interessante, que é: quando a gente vier aqui, a gente vai criar uma sub qualquer, por exemplo, abrir.
Sub abrir, certo?
Criamos a sub abrir.
A gente vai usar um comando, o chamado: ponto show.
A gente vai vir aqui e vai escrever userform um, que é o userform como está nomeado aqui em cima, que é o nosso que está funcionando, o outro está em branco, né?
Ponto Show.
O que é que o ponto show vai fazer?
Vai abrir o userform.
Então, se eu executar essa macro, olha o que ela faz.
Ela abre o userform.
E aí, como a gente vai fazer um botão aparecer lá na planilha inicial?
A gente vai vir aqui na planilha.
A gente vai vir aqui em cima, nesse menu superior, clicar com o lado direito aqui, nesse menu superior, bem aqui, entre entre este..
Entre essas setinhas aqui.
A gente vai em personalizar faixa de opções.
Aguardar ela abrir.
Aberta a faixa de opções, a gente vai ativar a aba aqui de desenvolvedor.
Dá um ok.
Aberta a aba de desenvolvedores, a gente vai vir em inserir, então a gente clicou aqui em cima, no menu superior, agora tem uma aba desenvolvedor, a gente clica em inserir, e a gente vai optar por esse controle de formulário.
Esse primeiro botãozinho aqui.
A gente vai vir na planilha e arrastá-lo.
E aí, ele vai perguntar antes de isso aparecer na planilha, ele vai perguntar qual macro a gente quer atribuir a ele.
A gente vai atribuir a macro abrir.
Então, dou um ok.
Selecionei a macro abrir, que é aquela nossa macro.
E agora tem um botão na planilha.
Quando eu clicar nesse botão, o nosso userform é aberto, porque ele executa a macro abrir, que chama, pelo ponto show, o nosso userform, legal?
Isso pode ser uma ferramenta muito importante de ser utilizada.