EXCEL

DICA - 01
Objetivo:
O objetivo deste tutorial e dos demais é ensinar você a programar em VBA de uma forma simples e prática, você vai aprender utilizar vários recursos que Excel oferece através de seu editor de programação, criar formulários, interagir com planilhas, que com certeza serão muito úteis, podendo ser utilizado para criar sistemas para uso pessoal ou profissional. Neste tutorial começaremos a conhecer o editor de visual basic, seus principais menus.
 Pré-requisito:
 Para você poder acompanhar o desenvolvimento deste tutorial, será necessário ter conhecimento no mínimo de informática.
 Para começar a programar quase sempre começamos fazendo um curso de Lógica de Programação, esta serve para podermos utilizar as ferramentas disponíveis para criação de sistema, de forma a raciocinar para resolver determinado situação. Em nosso caso, não irei abordar a lógica de programação direta e sim ao longo dos tutoriais, mesmo assim será voltado ao desenvolvimento de sistemas básico que ensino a criar aqui mesmo no site do Sr. Julio Battisti, irei ensinar de uma maneira, que se você ao compreender minha explicação já começará a desenvolver a lógica e a programar, podendo desenvolver seus próprios sistemas, irei fazer assim para que qualquer pessoa que tenha informática básica possa começar a programas em VBA.
 DICA: Procure ler uma apostila sobre lógica de programação, você pode encontrar no site www.apostilando.com.
 Irei procurar ensinar através dos tutoriais quase tudo de forma objetiva e direta, ou seja, sem demorar muito com teorias, claro que as mesmas são necessárias em alguns casos.
 Pensei um modo de simples para você começar a ensinar você a programar, então, como pretendo explicar  determinado código e logo em seguida fazer um exercício na prática, a primeira coisa a aprender é conhecer o editor de Visual Basic do Excel.
 Conheceremos suas ferramentas e objetos, aprenderemos a modificar as propriedades. Objetos no editor são por exemplo uma Label que tem como uma das suas utilidades para inserir nome dos campos, ou o próprio formulário que é um objeto, você vai entender melhor logo em seguida.

Para ativar o editor do visual basic do Excel, clique nom menu ferramentas, macros, “editor de visual basic”.
 
Tela 001
 
Tela 002
 Na parte superior temos os menus arquivo, editar e assim por diante, iremos aprender apenas os necessários   e seus  principais comandos. Logo abaixo temos uma barra de atalho com os principais comandos, onde podemos inserir form, iniciar ou parar o aplicativo, entre outros, mas iremos aprender por enquanto é a utilizar os menus.
 Na janela da esquerda temos o projeto, neste vai aparecer as planilhas, os formulários com seus respectivos nomes e na  janela da direita vai ser onde iremos inserir e manipular todos os objetos.
 O primeiro menu que vamos aprender é o “Exibir”:
 
Tela 003
 Os principais comandos que utilizaremos serão os seguintes.
 EXIBIR:
 CODIGO: Este será utilizado toda a vez que precisarmos abrir a janela de código de um objeto.
 OBJETO:Este será utilizado toda a vez que precisarmos retornar ao objeto:

PROJECT EXPLORER:Este serve para mostrar a janela de projetos, que fica localizada no lado esquerdo do editor de visual basic.
 JANELA DE PROPRIEDADES:Este serve para ativar a janela de propriedades de um objeto.
 CAIXA DE FERRAMENTAS: Esta será contem várias ferramentas para utilizar no desenvolvimento do sistema.
 
Tela 004
 INSERIR:
 INSERFORM: Este será utilizado para inserir o formulário no projeto.
 MODULO: Este será utilizado para inserir módulos no projeto.


Tela 005
 EXECUTAR:
 EXECUTAR USERFORM: Este será utilizado para iniciar o sistema.
INTERROMPER: Este será utilizado para pausar o sistema.
 REDEFINIR:  Este vai parar o sistema por completo.
 
Tela 006
 FERRAMENTAS:
 REFERÊNCIAS: Este utilizaremos para ativar determinadas bibliotecas quando for necessário.
 Conhecido os principais menus e comandos que utilizaremos, no próximo tutorial iremos conhecer a caixa de ferramentas.
Objetivo:
 O objetivo deste tutorial é continuar aprender sobre o editor de visual basic do Excel, neste iremos conhecer a caixa de ferramentas e a inserir um formulário, a mesma possui vários objetos que utilizaremos freqüentemente no desenvolvimento de sistemas. Mostrando sempre através de telas para facilitar o seu aprendizado.
 Pré-requisito:
 Para você poder acompanhar o desenvolvimento deste tutorial, será necessário ter conhecimento no mínimo de informática e Parte 1 deste tutorial.
DICA - 02
Para que possamos visualizar a caixa de ferramentas teremos que estar com algum objeto ativado, então, irei ensinar a inserir um objeto que neste caso será um formulário, o processo é simples e prático. Clique no menu inserir Userform.


Tela 001
 Agora para visualizarmos a caixa de ferramentas, clique sobre o menu “exibir” e depois em caixa de ferramentas.
 
Tela 002

Pronto, foi inserida a caixa de ferramentas, agora iremos conhecer os principais objetos da mesma, sempre se da direita para esquerda, irei usar números como referencia, ou seja, a seta será o objeto numero 1, a letra A será 2 e assim sucessivamente.
 Objeto 1 –Ferramenta de marcação representado pela seta: Esta  utilizaremos para manipular os objetos, como dimensionar a largura do formulário, entre outros.
 Objeto 2 – Label representada pela letra A: Esta utilizaremos quase sempre para identificar um campo ou usar como uma variável. Para inserir qualquer objeto basta selecioná-lo e clicar sobre o formulário.
 Objeto 3 – Caixa de texto representado pela letra ab|:  Esta utilizaremos para inserir dados, como por exemplo, senha e login.
 Objeto 4 – Caixa de combinação: Esta utilizaremos quase sempre para disponibilizar  algumas opções que os usuários poderão selecionar, digamos que você tenha uma lista de três nomes, Ana, Paula e Diene num acesso via login e você acessa este com algum deste nomes, então você não ira precisar digitar nenhum, apenas selecionar o que deseja.
 Objeto 5 – Caixa de listagem : Esta utilizaremos quando quisermos fazer o mesmo processo, que expliquei na caixa de combinação, a diferença que esta ira disponibilizar os nomes em forma de listas. Também podemos utilizaras para mostrar vários registros do banco de dados.
 Objeto 6 Caixa de seleção: Esta utilizaremos quando oferecemos ao usuário uma lista de opções que o mesmo poderá escolher. Um exemplo é quando criamos um e-mail em algum provedor, este pergunta quais interesses temos em determinada área para receber e-mails, então, você poderá escolher varias entre as que o mesmo disponibiliza.
 Objeto 7 Botão de opção: Este tem função parecida com a caixa de seleção a diferença é que podemos apenas marcar uma opção de cada vez, um exemplo é fazer um formulário onde usuário poderá selecionar como resposta sim ou não.
 Objeto 9 Moldura:  Este utilizaremos para  dar um designer mais moderno ao formulário ou para separar certos dados.
 Objeto 10 Botão de comando: Este utilizaremos para que através do mesmo determinar alguma função.
 Objeto 11 Multi-página: Esta utilizaremos sempre dentro do formulário onde podemos separar os dados.
 Objeto 14 Imagem:  Este utilizaremos para quando quisermos inserir uma imagem ao formulário.
 Conhecido as  principais ferramentas, irei mostrar como inseri-la no formulário o processo é bem simples, vamos inseri como exemplo uma label, para isso selecione a mesma na caixa de ferramentas e clique sobre o formulário.


Tela 003
 O processo é o mesmo para as demais ferramentas, para inserir uma caixa de texto selecione a mesma e clique sobre o formulário.
 
Tela 004

Bom agora que já conhecemos e sabes inserir os objetos, teremos que aprender sobre suas propriedades é através destas que iremos inserir cor, alterar fonte, tamanho entre outros. Vamos começar pela Label, insira uma label no formulário com a mesma selecionada ative a janela de propriedades, irei mostrar as principais:
 
Tela 005
 Propriedade Name:  Através desta poderemos modificar o nome da label, será útil para a hora que formos programar o código. Irei mostrar um exemplo de coma alterar esta propriedade, as demais irei apenas explicar a função de cada propriedade.
 Na janela de propriedade, bem no inicio esta escrito Label1, apague este nome e insira outros, em nosso caso iremos digitar “teste”.
 
Tela 006
 Backcolor:  Esta utilizamos para modificar a cor de fundo do objeto, que neste caso é a Label.
 
Tela 007
 Caption:  Esta utilizamos para modificar o nome da label, ou seja, o nome que estamos visualizando, neste vamos colocar o nome teste também.


Tela 008
Propriedades Label:
 Irei mostrar passo a passo a modificar a mesma, as demais propriedades deste e dos demais objetos o procedimento é o mesmo.
 No editor de visual basic insira um formulário, clique no botão inseri userform, depois a label, selecione a mesma na caixa de ferramentas e de um clique sobre o formulário.
 
Tela 001
 Agora vamos ativar a janela de propriedades selecione a label se mesma não tiver, clique no menu exibir janela de propriedades.
 
Tela 002
 Vamos conhecer suas principais propriedades.
 Name: Esta é para substituir o nome Label1, usamos quase sempre para fazer referência de códigos a mesma.
 Backcolor: Esta é para modificar a cor de fundo.
 Bordercolor: Esta é para trocar a cor da borda.
 Caption: Esta é para modificar o nome Label 1 visualmente, ou seja, este é o nome que aparece no formulário.
 Enable: Esta é quando selecionada false não é permitido modificar o nome da label
 Font:  Esta é para modificar a fonte, tamanho e estilo.
 Forecolor: Esta é para modificar a cor da fonte.
 Height: Esta é para modificar a altura da label.
 Visible: Esta quando selecionado false, não ira mostra a label durante a execução do aplicativo.
 Width: Esta é para definir a largura.
 Agora que você já conhece as principais propriedades da Label, irei ensinar a modificar conforme exemplo abaixo.
 Insira uma label no formulário, onde iremos modificar as suas propriedades da seguinte forma:
 Caption para MODIFICANDO AS PROPRIEDADES
 Height para 20
 Width para 138
 Com a label selecionada, a janela de propriedades clique em caption apague o nome e insira o que definimos:


Tela 003
 Agora selecione a propriedade height e altere conforme a nosso definição logo acima:
 
Tela 004

Por último vamos alterar a propriedade widht conforme a definição logo acima.
 
Tela 005
 Conhecendo as principais propriedades da label e sabendo os processos para modificá-las, lembrando que as propriedades dos demais objetos, são quase as mesma e iremos aprendendo conforme nosso estudo.portanto, iremos criar um pequeno código.
 O objeto deste código é clicar num botão e aparecer a seguinte frase: “Estou aprendendo a programar vba”. Então no formulário os objetos que precisaremos é de um formulário e um botão, insira os mesmos. Feito isso, iremos modificar a propriedade Caption de commandbutton1 para Mensagem e name para botão.
 Selecione o botão e através da propriedade caption e faça a alteração:
 
Tela 006
 Modificada as propriedades, vamos ativar a janela de código do botão, para isso clique no menu exibir código fonte.
 
Tela 007
 Dentro do código do botão, cada objeto dentro da janela de código existe um determinado evento, neste caso vai ser o evento clic, que ocorre sempre quando o botão for clicado, mas o que interessa é a criação do código neste momento.
 Sempre quando quiser que aparece uma mensagem digitamos o seguinte código:
 Iniciamos com.
 MSGBOX “Estou aprendendo a programar vba”
 Dentro das aspas duplas escrevemos a mensagem.
 
Tela 008

Agora basta voltar a exibir o formulário, para isso no menu exibir clique em objeto.
 
Tela 009
 Agora inicie o aplicativo no menu executar e clique no botão para visualizar a mensagem.
 
Tela 010
DICA - 03
Vamos começar a utilizar os códigos na pratica assim vai ficar melhor o seu aprendizado, podendo você utilizar estes códigos para a criação dos seus sistemas bastando fazer a adaptação. Criaremos um pequeno sistema para prática irei mostrar passo a passo.
 Com o editor de visual basic do Excel aberto, vamos salvar o sistema com nome “vba.xls” e depois vamos inserir o primeiro objeto que será um formulário. Para inserir o formulário clique no menu inserir userform.
 
Tela 001
 Agora vamos criar um código para inserir a data, a primeira coisa a fazer antes de escrever o código é definir em qual objeto utilizaremos para mostrar a mesma, aconselho a utilizar um rotulo, então, utilizaremos a mesma para visualizar a data, insira um label no formulário, para isso selecione a mesma na caixa de ferramentas e depois clique sobre o formulário.
 
Tela 002
 Temos que definir onde inserir o código, o que vamos criar para a data deve ser inserido no formulário na sua propriedade initialize, esta propriedade executa o código  assim que é inicializado o formulário, portanto, quando rodarmos o aplicativo o código será acionado e a data será mostrada através do objeto label. Para isso clique duas vezes sobre o formulário e depois seleciona a propriedade.
 
Tela 003
 A seguir o código para mostrar a data:
 Label1 = Format(Date, " dd / mm / yyyy")
 Veja que primeiro inserimos o nome do objeto que vai receber a data, depois colocamos Format() seguido Date com a formatação dia, mês e ano.
 
Tela 004
 Agora vamos rodar o programa, para ver a data:
 
Tela 005
 Você viu que é simples criar um código para inserir uma data utilizando programação. Agora vamos fazer com que a data aparece dentro de um objeto textbox quando você clicar num botão. Para isso insira um textbox e um botão, selecione os mesmo na caixa de ferramentas e clique sobre  o formulário:
 
Tela 006
 O código para inserir a data esta pronto, o que temos que fazer é modificar o nome do objeto que é Label1 para textbox1, então o código passa a ser assim:
 Antes: label1 = Format(Date, " dd / mm / yyyy")
 Agora: TextBox1 = Format(Date, " dd / mm / yyyy")
 Devemos inserir este código dentro do botão em sua propriedade clique, para que quando clicarmos este código vai enviar a data para o text.
 
Tela 007
 Execute o programa e clique sobre o botão, para que a data seja inserida dentro do textbox.


Tela 008
 Vamos criar um código bem simples para fechar o formulário sem clicar no x, para isso inserira outro botão e dentro do mesmo coloque o seguinte código:
 Userform.hide
 Colocamos o nome do formulário e depois o código Hide.
 
Tela 009
 Execute o programa e clique no botão fechar.


Tela 010
Vamos começar este tutorial aprendendo a fazer cálculos simples, o que vai ser sempre útil e utilizaremos quase com freqüência no desenvolvimento de sistemas. Para isso vamos utilizar os seguintes objetos:
 01 Formulário
 06 Label
 03 Caixas de texto
 01 Botão
DICA - 04
 Vamos começar fazendo uma simples conta de multiplicação, não iremos definir um valor x, com o que vamos aprender agora você pode até montar um pequeno sistema digamos para o seu filho aprender a tabuada, insira e ajuste os objetos conforme a tela abaixo:
 
Tela 001
 Bom, agora vamos inserir dentro do botão o código, no seu evento clique, para que após você digitar nas caixas os números você clique para ser calculado e vai aparecer o resultado na terceira caixa, baixo o código.
 TextBox3.Text = TextBox1.Text * TextBox2.Text
 Vou explicar o funcionamento do código acima que é bem simples, só precisamos utiliza a lógica, quem vai receber o valor final, ou seja, o valor já multiplicado é a terceira caixa, então começamos digitando o seu name no mais a sua propriedade text.
 Colocamos o sinal de igual e  o nome da primeira caixa mais o sinal de asterisco, que representa multiplicação, seguido do nome da segunda caixa, pronto.
 Abaixo o código dentro do botão mais o sistema rondando e mostrando o resultado da multiplicação de 10*10.
 
Tela 002
 
Tela 003
 Agora vamos fazer para efetuar a divisão o processo é quase o mesmo o que devemos fazer é substituir o asterisco pela / que representa a divisão, abaixo o código e o exemplo da divisão de 100/10.
 
Tela 004
 
Tela 005
 O mesmo processo é para fazer s subtração, abaixo o código o exemplo 100 – 90.


Tela 006
 
Tela 007
 Bom, agora só falta fazer a adição, você deve estar pensando que é só substituir o sina de – por + mas não, é que para adição apenas este sinal de mais ira juntar os números, substitua o sinal de – por + e teste 100 + 100, ou resultado será conforme a tela abaixo:


Tela 008
 Neste caso temos que criar duas variáveis e atribuir valores as mesmas, nos próximos tutoriais irei abordar melhor o uso das variáveis. Iremos criar a variável x e y mas para isso teremos que declará-las como um inteiro  da seguinte maneira.
 Dim x As Integer
 Dim y As Integer
 x = TextBox1.Text
 y = TextBox2.Text
 TextBox3.Text = x + y
 Logo após fazer a declaração temos que atribuir o valor para as variáveis, como não sabemos qual o valor que o usuário vai digitar atribuímos a caixas de texto um e dois, assim ira fazer a soma de qualquer número que for digitado.
 Na última parte do código, lembre-se que este esta dentro do botão no seu evento clique, colocamos primeiro a caixa de texto 3 que vai receber e depois a variável x + y, que nesta altura já possuem um determinado valor que receberam das caixa de texto.
 Abaixo o código e a soma de 100+100 resultando no valor esperado.


Tela 009
 
Tela 010
DICA - 05
Para utilizarmos a declaração de uma variável utilizamos:
 Dim nome
 Neste caso o “nome” é o nome  que damos a variável, lembrando que não definimos o tipo, ou seja, se é texto, inteiro, etc. Sua sintaxe completa é a seguinte:
 Dim + Nome da Variável + As + Tipo da Variável
 Dim teste as integer
 Estou dizendo no exemplo acima que o nome da variável é teste o tipo inteiro, ou seja, números inteiros.
 Bom, para que você entenda melhor vamos criar um exemplo prático, através de um pequeno sistema que chamaremos de: Entrada no Sistema.
 Vou explicar o seu funcionamento, iremos criar duas telas, a primeira iremos inserir um titulo digite “seu nome na caixa de texto”, mais os objetos caixas de texto e um botão.
 Na segunda tela vamos inserir o titulo “Seja Bem Vindo!” mais um objeto label para receber o valor da variável que neste caso vai ser o nome que digitarmos na caixa de entrada, este exemplo é útil para você criar um sistema de login bem básico, nos próximos tutoriais utilizaremos um exemplo parecido com este para criar uma entrada ao sistema com acesso restrito.
 Vamos utilizar os seguintes objetos para este exemplo:
02 Formulários
01 Caixa de texto
03 Label
01 Botão
 Formate o primeiro formulário da seguinte maneira:
 1° Formulário.
 Largura 240
 Altura 180
 Name para entrada
 Caption para sistema entrada
 1° Label
 Digite “sistema de entrada”
 2° Label
 Digite “nome”
 Caixa de texto
 Name para text_nome
 Botão
Caption para Acessar
 Name Para Buton_acessar
 
Tela 001
 2° Formulário
 Caption para Seja Bem Vindo!
 Largura para 240
 Altura 180
 Name para recebe
 Label
 Caption para Seja Bem vindo
 2° Label deixar sem modificações.


Tela 002
 Criado as interfaces gráficas agora vamos codificar o sistema, todo o código irá ser ativado  quando clicarmos no botão acessar, então, o código será colocado dentro do botão na seu evento clique.
 A primeira coisa a fazer é declarar uma variável na qual iremos chamá-la de “nome”, sua declaração é a seguinte:
 Dim nome as string
 
Tela 003
 O próximo passo é repassar um valor para esta variável que chamamos de nome, vamos supor que não  sabemos que nome será digitado pelo usuário, então atribuímos a caixa de texto que esta com o seguinte name
 Text_name, ficando assim o código:
 Nome=text_name
 
Tela 004
 Agora iremos escrever  mais dois códigos, o primeiro é que vai fazer com que passamos o valor já armazenado  na variável nome para a label2 que se encontra no 2° formulário que se chama recebe. Para fazermos isso digitamos primeiro o nome do formulário recebe + . (ponto) Label2=nome e por último inserirmos o código para abrir o formulário recebe., colocamos o nome do mesmo + a palavra Show.
 Recebe.label2=nome
 Recebe.show
 
Tela 005
 Agora falta pouco para terminamos o código, no formulário recebe, temos que receber o valor da variável nome que vai ser passado assim que o usuário clicar no botão acessar, para utilizamos o objeto label2 para receber este valor, então escrevemos o código dentro do formulário no evento initialize, ou seja, este ira ativar o código assim que o formulário for aberto.
 Label2 = nome
 
Tela 006
 Agora é só executar o sistema a partir do primeiro formulário digitar qualquer nome e clicar no botão acessar.
 
Tela 007
 
Tela 008
estrutura If ...Then...Else,  com esta podemos determinar qual código vai ser executado se o resultado for verdadeiro.
 Sua sintaxe é a seguinte:
 If  condição Then
Comando 1
Comando 2
....
 Comando
Else
Comando 1
Comando 2
....
 Comando 
End if
 Se a condição for verdadeira ira executar parte do código que contém  o comando, caso seja falsa executará a outra parte.  Para que você possa compreender melhor, nada melhor que utilizar-mos um exemplo prático.
DICA - 06
 No tutorial anterior falei sobre variáveis e criamos um exemplo prático, onde digitávamos um nome qualquer e este era repassado através de uma variável para o segundo formulário.

Vamos pegar o mesmo formulário e vamos criar uma condição para que só abra o segundo formulário se o nome for igual a “ERICO”, caso não seja este o nome digitado vamos fazer com que aparece uma mensagem “Nome esta incorreto”. Com a utilização desta condição você poderá criar um sistema de login simples, onde digitamos “ERICO” você poderá colocar seu nome, por exemplo.
 Abaixo esta os formulários pronto, que ensinei a criar no tutorial anterior.
 
Tela 001
 
Tela 002
 Acesse o código do formulário entrada que esta dentro do botão acessar. Neste temos que definir a condição, mas te que forma? Simples,já temos o código pronto que terá a função de abrir o segundo formulário e se queremos que o sistema só ative o  segundo formulário se o nome for igual “ÉRICO”. devemos  inserir  o código da seguinte maneira:
 If  Text_nome.Text = "VBA" Then
 
Tela 003
 A condição acima diz o seguinte: Se text_nome.text (text_box é a caixa onde você vai digitar o nome)  for igual a VBA então, vai executar o comando abaixo, que no caso vamos colocar o código para abrir o formulário.
 Dim nome As String
 nome = Text_nome
 recebe.Label2 = nome
 recebe.Show
 
Tela 004
 Agora temos utilizar a expressão IF, que em português significa “se” e logo após o comando que será executado quando o nome não for igual a “ÉRICO”, no nosso caso vai ser mostrado uma mensagem, e por ultimo encerramos a condição.
 Else
 MsgBox "Nome esta incorreto"
 End If
 
Tela 005
 Vamos rodar o programa e digitar o nome “ERICO”, quero fazer uma observação referente ao código, o mesmo faz distinção entre minúsculas e maiúsculas e acentos.Então, você deve tomar cuidado ao escolher a forma que vai escrever o nome, se for você que utilizará o sistema tudo bem, mas já imaginou se outra pessoa que ira utilizar?, com certeza a mesma ira fazer perguntas porque que esta digitando o nome escolhido provavelmente pela mesma e não esta conseguindo acessar o sistema.
 Nos próximos tutoriais iremos começar a interagir mais com os usuários, ou seja, entrada de dados do mesmo direto para o banco de dados, que neste caso vai ser uma própria planilha do Excel, aí irei  ensinar para você alguns ajustes que evitarão certos problemas, e temos que sempre que pensar que apesar do Excel através do vba criarmos sistemas o mesmo tem suas limitações.
 
Tela 006
 
Tela 007
 Agora se digitarmos outro nome será executado  o código da segunda parte do comando, que á mensagem.
 
Tela 008
 
Tela 009
“For...Next”, em determinadas situações precisamos fazer a repetição de um ou mais comandos, quase sempre utilizamos esta quando já sabemos o números de vezes que o código deve ser executado, também utilizamos um cantador que pode ser uma variável.
 Sua sintaxe é a seguinte:
 For contador = inicio do fim do incremento
 Comando1
 Comando2
 .......
 Comando
 Next
 Vamos fazer um exemplo  prático e simples para que você entenda melhor a utilização desta estrutura,.
 Dim y
 y = 10
 contador = 1
 For i = 1 To y
 contador = contador + i
 Next
 Me.TextBox1 = contador
DICA - 07
 Este código vai fazer a repetição de 56 vezes partindo do numero 1, crie uma simples tela com os objetos  com abaixo:
 
Tela 001

Insira o código dentro botão iniciar, no seu evento clic:
 
Tela 002
 Agora execute o programa e clique no botão iniciar, o resultado deve ser igual ao que aparece dentro da caixa textbox.
 
Tela 003
 Este é um exemplo bem simples, mas poderíamos fazer executar uma determinada função mais complexa por diversas vezes.
 Agora irei ensinar a carregar um combobox através de código, várias vezes você ira precisar do mesmo, por exemplo: digamos que tenhamos um formulário para cadastro de clientes, neste tem o campo cidade, devemos toda vez que cadastrar um cliente novo digitar o nome da sua cidade, para isso podemos utilizar o combobox e cadastrar várias cidades  assim você apenas seleciona.

Abaixo insira o objeto combobox conforme a tela abaixo:
 
Tela 004
 Irei inserir apenas 03 nomes de cidades, você pode também utilizar este exemplo para inserir nome de estados. O código deve ser inserido no formulário no seu evento initialize, para que assim que o mesmo for aberto, ele preencha o combobox com os nomes que tenhamos definido.
 ComboBox1.AddItem "São Paulo"
 ComboBox1.AddItem "Rio Janeiro"
 ComboBox1.AddItem "Brasília"
 Começamos a escrever o código digitando o nome do objeto que vai receber o nome, neste caso será o combobox, depois inserimos  a propriedade “additem” seguido do nome da cidade, este deve estar sobre aspas duplas, por ser tratar de uma string, ou seja, texto.
 
Tela 005
 
Tela 006
 Outra forma que você pode carregar o combobox é a partir da própria planilha utilizando para isso a propriedade Rowsorce, digite na planilha na coluna “A” os mesmos nomes das cidades.
 
Tela 007
 Antes de fazermos a referência você deve apagar o código que ensinei a criar, se não o mesmo não ira funcionar, ou pode fazer este exemplo abrindo outro formulário e inserindo um combobox que é o mais correto.
 Agora selecione o combo, ative sua  propriedade e na mesma clique sobre Rowsource nesta digite o seguinte:
 Plan1! A1: A3
 Você esta dizendo ao mesmo que selecione da planilha 1 tudo que estiver entre a célula A1 até A3.
 
Tela 008
 
Tela 009

Conclusão:

 Neste tutorial falei sobre estruturas de controle de repetição For ... Next , mostrando sua sintaxe e mostrando sua utilização de forma prática para facilitar o seu aprendizado, também ensinei como carregar um combobox través de código e por meio da propriedade Rowsource,passo a passo e de forma simples direta e objetiva através das telas o que vai facilitar o seu aprendizado.
DICA - 08
Começaremos a calcular um intervalo (Intervalo quer dizer um número de dias) entre duas datas, para isso utilizamos o código “Datediff”, sua sintaxe é a seguinte:
 Datediff (intervalo, data1, data2)
 Onde:
 Intervalo: Vai ser uma string que vai indicar o tipo de intervalo, ou seja, dia (d), mês (m), ano(yyyy).
 Data1: é a primeira data, ou seja, data inicial.
 Data2: é a segunda data, ou seja, data final.
 Crie um formulário e adicione ao mesmo um botão  dentro do mesmo no evento clic digite o seguinte código:
 Msgbox “ O Intervalo entre as datas é: “ & datadiff(“d”,”01/04/2006”,”04/04/2006”)
 
Tela 001
 Agora execute o programa e clique sobre o botão, deve aparecer o seguinte resultado:
 
Tela 002
 É simples e fácil,veja que no exemplo acima digitei a data direto no código porque eu já sabia as datas a serem calculadas, mas se quisemos criar um sistema onde o cliente vai digitar as datas. Este exemplo que irei ensinar, utilizei  parte do mesmo para  desenvolver um sistema para calcular juros de uma prestação.
 A primeira coisa que você deve fazer é criar uma interface gráfica para o usuário dar entrada com os dados que neste caso será a data inicial e final, os objetos serão os seguintes, lembrando que quanto  a formatação do objetos pode esta fica  ao seu critério.
 01 formulário
 04 label
 01 botão
 Após ter criado a interface gráfica para o usuário, começaremos a pensar como iremos desenvolver o código ,  este deve ser inserido  dentro do botão calcular, no seu evento clic.
 Como não sabemos quais datas o usuário vai digitar precisaremos criar duas variáveis uma para data inicial o qual iremos chamar de “inidata” e para data final que iremos chamar de “fimdata”.
 Código de declaração das variáveis.
 Dim inidata as string
 Dim fimdata as string
 
Tela 003
 
Tela 004
 Agora temos que passar os valores para estas variáveis, ou seja, este valor será a data que o usuário vai digitar no textbox1 e textbox2, através do seguinte código;
 Inidata = Me.TextBox1
 Fimdata = Me.TextBox2
 
Tela 005
 Agora, temos que inserir o código datediff, da seguinte maneira:
 Textobox3 = datediff (“d”,Inidata,Fimdata)
 Começamos com o objeto textbox3  que vai receber o valor final, ou seja, o resultado do intervalo.
 Depois inserirmos o sinal de igual (=) mais  código datediff, com o intervalo “d” que vai ser o número de dias, e as duas variáveis “Inidata” e “Fimdata”.


Tela 006
 Agora execute o programa e digite por exemplo as datas: 01/04/2006 e 04/04/2006,, o resultado deve ser igual o que aparece na tela abaixo:
 
Tela 007 

Conclusão:

 Neste tutorial ensinei a calcular  intervalos entre duas datas utilizando o código “Datediff” mostrando sua sintaxe, ensino também a criar um exemplo  prático  para facilitar o seu aprendizado, de forma  simples direta e objetiva através das telas o que vai facilitar o seu aprendizado. Bons estudos e até a próxima parte.
DICA - 09
Bom, vamos aprender os códigos utilizando um formulário, insira todos os objetos conforme a tela abaixo:


Tela 001
 O primeiro código “Day()”que também pode ser chamado de função,  será  para retornar apenas o dia de uma data, ou seja, digamos que você tenha uma data no seguinte formato dd/mm/yyyy, com o código “day()” poder retornar dd.
 Dentro do botão datas insira o código da seguinte maneira: me.label1=day(date), veja que dentro parênteses insira o comando “date”, isso porque este ira retornar a data do sistema, e o código day via extrair apenas o dia.
 
Tela 002
 
Tela 003
 Para retornar o mês utilizamos a função “month()”, aproveitando o momento antes de inserimos o código para extrair o mês de uma data,  irei ensinar você a comentar o código, isso é muito útil por exemplo quando desejar escrever qual a função de um determinado código e também comentar para que o mesmo não seja executado quando o programa for inicializado. Para que você entenda melhor vamos comentar o código que mostra apenas o dia, o que remos que fazer é inserir uma aspa simples no inicio do mesmo, assim o código ficara na cor verde, e não será executado.
 ‘ me.label1= Day (Date)
 
Tela 004

Feito isso vamos inserir o código para extrair a apenas o mês:
 Me.label1= Month(Date)
 
Tela 005
 
Tela 006
 Para extrair apenas o ano de uma data utilizamos  o código “year (date)”.

Me.Label1 = Year(Date)
 
Tela 007
 
Tela 008
 Um fator importante para é que as vezes precisamos quando estamos programando no editor de vba é ativar a biblioteca MicrosoftDAO, se não alguns códigos não irão funcionar, principalmente quando estamos fazendo a declaração de variáveis. Para ativa-la, no editor do vba clique no menu ferramentas, referências, será aberta uma janela, na mesma selecione a biblioteca e clique no botão ok.


Tela 009 

Conclusão:

 Neste tutorial ensinei você a utilizar códigos para fazer manipulações com datas, podendo extrair apenas o dia, mês ou ano da mesma e também  a ativar a biblioteca Microsoft DAO, de forma  simples direta e objetiva através das telas o que vai facilitar o seu aprendizado
DICA - 10
Objeto.show
 Podemos  utilizá-lo de formas diferentes para abrir um formulário, ou seja, podemos utilizá-lo dentro um botão e quando você clicar  o mesmo abre o formulário, também podemos colocá-lo no próprio formulário que quando o mesmo for fechado vai abrir outro, entre outros, irei mostrar o primeiro tipo utilizando o objeto botão.
 Primeiro utilizando um botão, para isso insira dois formulários conforme mostra as telas abaixo.


Tela 001
 
Tela 002
 Iremos inserir o código dentro do botão para que quando o mesmo for clicado abra o formulário teste, antão, devemos colocar o nome do formulário que quer abrir, que no nosso caso é formulário_teste mais .show.
 Formulário_teste.show


Tela 003
 Agora, execute o sistema e clique no botão abrir formulário teste.
 
Tela 004
 Agora você já sabe com abrir um formulário, irei ensinar como fechá-lo, o código é quase o mesmo, apenas fazemos a substituição “show” por “hide”. Dentro do formulário teste insira um botão e dentro do mesmo coloque o seguinte código.
 Formulário_teste.hide


Tela 005
 Agora vamos aprender um código para inserir planilhas via código, note na tela abaixo que estou com 05 planilhas.
 
Tela 006
 Crie um formulário conforme a tela abaixo:


Tela 007
 O código para inserir planilhas é “Sheets.add”, dentro do botão que criamos acima insira o mesmo.
 
Tela 008
 Pronto agora inicie o sistema e clique no botão para inserir planilhas. Para deletar utilizamos o seguinte código:
 “Sheets("nome planilha").Delete”, onde inserirmos sheets que representa planilha, entre parênteses colocamos o nome da planilha e por fim delete. Vamos deletar a plan4 como exemplo, crie um formulário conforme o da tela abaixo e dentro do botão do mesmo digite o seguinte código:
 Sheets(“plan4”).delete
 
Tela 009
 
Tela 010
 Agora também irei ensinar para você como disparar uma mensagem quando um formulário for fechado, isso é bem simples e útil, como exemplo alertar o usuário sobre determinado assunto ou até mesmo em vez de mostrar uma mensagem fazer com que abra outro formulário.
 Vamos colocar a seguinte mensagem “Você esta aprendendo VBA”, crie o formulário conforme a tela abaixo e depois insira o código abaixo, note que colocamos o código que vai fechar o formulário e em seguida disparamos a mensagem a mensagem assim que o formulário abrir apenas tocaríamos o código me.hide por me.show
  
Me,hide
 msgbox”Você esta aprendendo VBA” dentro do botão.
 
Tela 011
 
Tela 012 

Conclusão:

 Neste tutorial ensinei você a utilizar códigos para abrir e fechar formulários, inserir e deletar planilhas e também como inserir uma mensagem quando o formulário for fechado, de forma  simples direta e objetiva através das telas o que vai facilitar o seu aprendizado.
DICA - 11
Você também ira aprender os passos para começar a criação de um sistema, começarei definindo os campos que utilizaremos que neste caso serão os seguintes:
 N°, Filial, Matricula, Nome, CPF, RG, Data Nascimento.
 Com estes campos podemos dar inicio a criação do banco de dados, abra uma planilha do Excel e salve com o nome “projeto.xls”, depois escreva os nomes dos campos conforme a tela abaixo.
 
Tela 001
 Agora precisamos fazer algumas formatações, sendo que a primeira delas é colocar os nomes dos campos em destaque  com outra cor e em negrito, devendo ficar conforme a tela abaixo.
 
Tela 002
 Agora temos que fazer a formatação de cada campo conforme a sua entrada de registros, ou seja, no campo n° podemos deixar com formatação geral.
 
Tela 003
 Ao campos filial e nome devem ficar com a formatação de texto, porque neste deverão só receber valores com texto.
 
Tela 004
 Já os campos matricula, CPF e Rg, deverão ser formatados para receber números com a casa decimais zerada.
 
Tela 005
 E por último o campo data de nascimento, onde fizemos a abreviação para nasc deve ficar formatado na categoria data.
 
Tela 006
 Pronto, esta criado o nosso banco de dados, veja que bem simples criá-lo, agora abaixo esta a interface gráfica pronta do sistema.


Tela 007
 Procure criar sem fazer grandes alterações no layout, apenas faça os ajustes necessários, logo abaixo esta a relação dos objetos utilizados para a criação da mesma, como você pode ver a mesma é bem simples. Neste sistema você aprender a criar códigos para cadastrar, pesquisar, editar e apagar os registros. No próximo tutorial começarei a ensinar a codificação do mesmo. Depois que fizermos a codificação básica podemos inserir outros códigos na mesma para ir dando melhor dinâmica ao sistema.
 Relação dos objetos:
 Formulário
 Name para projetos
Caption para projeto teste
Height  para 426
Width para 364
 Label
 01 Label
Caption para Cadastro de Gerentes
Height para 18
Width para 210
 02 Label
Caption para Código
Height para 12
Width para 24
 03 Label
Caption para Filial
Height para 12
Width para 30
 
04 Label
Caption para Matricula
Height para 12
Width para 54
 05 Label
Caption para Nome
Height para 12
Width para 42
 06 Label
Caption para CPF
Height para 12
Width para 24
 07 Label
Caption para RG
Height para 12
Width para 24
 08 Label
Caption para Data Nascimento
Height para 12
Width para 90
 09 Label
Caption para Total Registro BD
Height para 12
Width para 90
 10 Label
Caption para N
Height para 12
Width para  30
 11 Label
Caption para CODF
Height para 12
Width para 30
 Caixa de Texto
Todas as caixas com a mesma configuração abaixo.
 Name permanece o mesmo
Height para 16
Width para 72
 Botões
 Botão 01
Caption para Cadastrar
Height para 20
Width para 53
 Botão 02
Caption para Pesquisar
Height para 20
Width para 53
 Botão 03
Caption para Editar
Height para 20
Width para 53
 Botão 04
Caption para Pagar
Height para 20
Width para 53
 Botão 05
Caption para Fechar
Height para 20
Width para 53
 Moldura
 Moldura 01
Caption para Dados
Height para 228
Width para 330
 Moldura 02
Caption para Comandos
Height para 60
Width para 330 

Conclusão:

Neste tutorial ensinei você a criar um banco de dados a partir de uma planilha do Excel, mostrando como deve fazer as formatações dos campos e também a interface gráfica para que possa ser criado a partir do próximo tutorial códigos para interagir com o banco de dados, mostrado de forma  simples direta e objetiva através das telas o que vai facilitar o seu aprendizado.
DICA - 12
Bom, vamos começar aprender a codificar a interface gráfica do aplicativo, irei passar para vocês códigos básicos que irão cadastrar, editar, pesquisar, apagar e fechar  o formulário.
 O primeiro código que irei ensinar terá uma função de contar quantos registros tem o banco de dados, este é muito útil, o mesmo esta logo abaixo e deve ser inserido dentro do formulário no seu evento initialize, para que quando  o mesmo for aberto o código já inicie automático.

Label11 = Application.WorksheetFunction.CountA(Plan1.Columns(1)) – 1


Tela  001
 Começamos o código definindo o objeto que vai receber os dados, neste caso vai ser a label 11, depois utilizamos o método aplicação mais a função contar e dentro do parênteses o nome da planilha que neste caso vai ser Plan1 vamos contar por coluna – 1, isso porque a primeira linha é o cabeçalho.
DICA - 13
 Vamos  agora criar  código para inserir os registros no banco de dados, este iremos colocar dentro do botão cadastrar no seu evento clic, começaremos utilizando duas variáveis uma para conectar outra para abrir, então temos que declarar as mesmas para que funcione.
 Dim bd As Database
Dim RS As Recordset
 
Tela 001
 Feito isso precisamos abrir o banco e a tabela.
Set bd = OpenDatabase(ThisWorkbook.Path & "\" & ThisWorkbook.Name, False, False, "excel 8.0")
Set RS = bd.OpenRecordset("PLAN1$", dbOpenDynaset)
 Note que vou mostrar de forma objetiva os códigos para que você possa vir a compreender melhor estes códigos e depois utiliza-los na criação de algum sistema para você.


Tela 002
 Agora vem uma parte que é o seguinte, o código não é gerado automático, então, você é quem deverá inserir o mesmo, mas aí eu pensei uma forma do usuário não repetir o mesmo código, então criei uma condição, como sabemos o numero de registro no banco, por exemplo, temos apenas um registro, então, o código deverá ser maior do que 1 para poder ser cadastrado. Para isso usei a condição abaixo, a mesma só era entrar para executar os comandos para o cadastramento dos registros, dentro desta condição é que iremos criar os códigos de cadastro.
 If Me.TextBox1 > Me.Label11 Then
 End If
 
Tela 003
 Agora começamos a criar a função de cadastro:
                      Dim cadastro(1 To 7)
                    cadastro(1) = UCase(Me.TextBox1)
                    cadastro(2) = UCase(Me.TextBox2)
                    cadastro(3) = UCase(Me.TextBox3)
                    cadastro(4) = UCase(Me.TextBox4)
                    cadastro(5) = UCase(Me.TextBox5)
                    cadastro(6) = UCase(Me.TextBox6)
                    cadastro(7) = UCase(Me.TextBox7)
                     cadastro(7) = UCase(Me.TextBox1.Value)
 Dim PROJETO As Object
            Dim L, i
            Set PROJETO = Plan1.Cells(1, 1).CurrentRegion
            L = PROJETO.Rows.Count + 1
                        If Len(Me.TextBox1) = 0 Then
                                 MsgBox "VOCÊ NÃO DIGITOU NENHUM DADO PARA INCLUSÃO", vbCritical, "CADASTRO DE DADOS"
                         Else
                                      For i = 1 To 7
                                      Plan1.Cells(L, i).Value = Trim(cadastro(i))
                                   Next i 
                            MsgBox "CADASTRO", vbInformation, "EFETUADO COM SUCESSO"
                                            ThisWorkbook.Save
                           End If 
               Exit Sub
         Else
        MsgBox "No campo COD digite um número maior do que há no campo  registro no banco para casdastrar." 
End If
Note que a mesma é bem extensa, mas irei explica-la de forma bem objetiva para não confundi-lo, na primeira parte colocamos os objetos que neste caso serão os textbox, e do lado esquerdo cada cadastro(1) representa uma coluna na planilha, na segunda parte vamos fazer com que seja inserido os registros através do for, antes testamos o primeiro text que nesta caso é o código, se o mesmo estiver vazio aparecerá uma mensagem, isso ocorre porque você terá que inserir o código.
 Caso o registro tenha sido inserido corretamente, apresentamos uma mensagem para o usuário saber que ocorreu tudo bem e logo abaixo colocamos um comando para salvar as alterações na planilha, para que na hora que você fechar o sistema não tenha a necessidade salvar a planilha.
 Espero que você tenha compreendido o funcionamento dos códigos, no inicio pode parecer meio confuso, mas é questão de tempo para que venhas compreender melhor.


Tela 004 

Conclusão:

Neste tutorial ensinei você a criar  o código que ira mostrar quantos registros armazenados existem no banco de dados e também como criar o código para cadastrar os registros, mostrado de forma  simples direta e objetiva através das telas o que vai facilitar o seu aprendizado.
 DICA - 14
Bom, no tutorial anterior você aprendeu a criar o código para inserir registros no banco de dados, vamos aprender nesse a criar o código pra retornar os registros do banco de dados. Serei bem objetivo quanto a explicação de forma que você possa entender sem maiores dificuldades, lembrando sempre que para aprenderemos a programar é bom sempre ter um curso de lógica de programação onde aprendermos melhor a utilizar o nosso raciocínio para desenvolvimento de sistemas, mas claro que nestes códigos que estou ensinado para você não há esta necessidade.
 Uma das primeiras coisas que temos que fazer é definir qual o campo que iremos utilizar para buscar as informações, ou seja, neste pequeno sistema que estamos criando, vamos utilizar como exemplo o campo “FILIAL”, através dele é que iremos digitar o nome da filial que desejamos localizar. O primeiro código sempre é declarar as variáveis e conectar e abrir o banco de dados, esta parte de código ensinei no tutorial anterior, então, irei apenas coloca- lo aqui novamente para irmos montando o código.

Dim bd As Database
Dim rs As Recordset
 Set bd = OpenDatabase(ThisWorkbook.Path & "\" & ThisWorkbook.Name, False, False, "excel 8.0")
Set rs = bd.OpenRecordset("PLAN1$", dbOpenDynaset)
 
Tela 001
 Vamos começar inserindo uma linha de código que irá testar se o nome que estamos buscando esta no banco de dados,  em nosso caso este campo é “FILIAL”, digamos por exemplo que você esteja buscando uma filial com o nome “filial 2” se esta não estiver ira aparecer uma mensagem informando que a mesma não foi localizada ou não esta cadastrada no banco de dados, essa mensagem fica ao seu critério, o código  que faz esta função, a mesma é bem simples, apenas estou dizendo se o textBox1 que é o código for igual a vazio então aparece a mensagem, isso porque é neste sistema é obrigado retornar o código do sistema.
 If Me.TextBox1 = "" Then MsgBox "Nome não cadastrado", vbInformation, "Banco de dados": Exit Sub
 
Tela 002
 Vou mostrar para você  como ira aparecer esta mensagem na tela, lembrando que este deve ficar por em baixo dos demais código:
 
Tela 003
Seguindo a criação do código utilizares o control “DO UNTIL” esta vai fazer com que retorne os registros do banco.
 LIN = 2
 Do Until rs.EOF
 LIN = LIN + 1
rs.MoveNext
Loop
 No inicio temos LIN=2, ou seja queremos começar a pesquisar a partir da segunda linha do banco, porque a primeira é o cabeçalho, utilizamos o Do Until mais a variável do banco rs.EOF para percorrer  os registros até o final em busca do que digitamos, se for verdadeiro, ou seja, no momento que ele encontra o registro ele retorna o mesmo, para que faça esta movimentação utilizamos rs.moveNext em forma de loop, parece um pouco complicado, mas resumindo ira percorrendo linha a linha da planilha na qual transformamos em banco de dados atrás do registro.
 
Tela 004
 Para terminar temos que colocar mais um código, onde iremos selecionar o campo que iremos buscar fazendo com o mesmo um teste, mais os campos com seus objetos para mostrarmos os registros retornados.
 If rs("FILIAL") = Me.TextBox2.Text Then
        Me.TextBox1 = rs.Fields("N")
        Me.TextBox3 = rs.Fields("MATRICULA")
        Me.TextBox4 = rs.Fields("NOME")
        Me.TextBox5 = rs.Fields("CPF")
        Me.TextBox6 = rs.Fields("RG")
        Me.TextBox7 = rs.Fields("NASC")
        Me.TextBox8.Text = LIN 
End If
 Do lado esquerdo os objetos, que em neste caso são os TextBox passando o sinal de “=” mais os campos o nome dos campos do banco de dados.
 
Tela 005
 Esta pronta o código que ira retornar os registros do banco de dados, este é bem simples, ira retornar apenas um registro de cada vez, existem situações que precisamos retornar vários registros, por exemplo, digamos que você tem um cadastro de clientes e neste existem cadastrados 10 pessoas que iniciam com o no Neli, poderia ser criado um código para retornar estes 10 nomes ao mesmo tempo, isso irei ensinar nos próximos tutorias, este mesmo código que acabamos de criar pode ser ainda mais incrementado, mas preferi fazer assim para irmos devagar, ao longo dos demais tutorial poderei voltar a fazer mais alterações no mesmo.
 O importante, e este é meu objetivo principal é que você posso utilizar estes códigos adaptando as suas necessidades do seus sistema, abaixo aparece a tela com uma pesquisa efetuada.
 
Tela 006
 Outro fator importante para que os códigos funcione corretamente é ativar a biblioteca chamada Microsof Dao, no editor de VBA, clique em ferramentas, referências e depois ative a mesma.
 
Tela 007 

Conclusão:

 Neste tutorial ensinei você a criar  o código para  retornar do bando de dados os registros e também como ativar a biblioteca Microsoft Dao,  sempre mostrando passo a passo através de telas  e explicando o funcionamento das  funções de forma  simples direta e objetiva através das telas o que vai facilitar o seu aprendizado.
 NOTA: A partir deste sistema, irei oferecer serviços de acessória em desenvolvimento de sistemas em Excel, portanto, se você quiser adaptar ou criar um sistema conforme sua necessidade, entre em contato comigo através do e-mail: erico_2223@yahoo.com.br. (Eric é o autor deste conteúdo do qual fiz a copia para meu site)

 

José Valter
www.josevalter.com.br
Procurando para o internauta o melhor que a web oferece, totalmente grátis para o seu desenvolvimento.