Académique Documents
Professionnel Documents
Culture Documents
Mudamos de endereço
É com grande
satisfação que venho informá-los da nossa mudança de endereço. Já tem
algum tempo que vocês devem ter notado que o nosso site não sofre
alterações, e não apresenta novidades. Isso acontece devido a uma ênfase
maior no meu site comercial, o www.excelexperts.com.br, que requer mais de
minha atenção.
Por um tempo vocês ficaram desamparados de atualizações, mas isso passou, a partir de
agora vocês já podem acessar o novo blog em blog.excelexperts.com.br sintam-se à
vontade para usar e abusar desse nosso novo espaço, as informações contidas aqui, não
serão transportadas para lá, mas ficarão aqui disponíveis para consulta, porém as
novidades somente serão publicadas no novo blog, por favor, não deixe de nos fazer
uma visita.
Algorítimos
algorithm
algoritmo; regras usadas para definir ou executar uma tarefa específica ou
para resolver um problema específico. (dic Michaelis)
COMER UM CHOCOLATE
Pegar o chocolate
Retirar o Papel do Chocolate
Comer o chocolate
Jogar o papel no lixo
Que tal agora que você já entendeu o que é um algorítimo, utilizar o espaço
para comentário e criar um algorítimo para as seguintes sugestões
1. Crie uma sequência lógica dos seus passos para tomar café da manhã.
2. Faça um algorítimo para somar dois números e dividi-los por 2.
3. Escreva uma sequência lógica para trocar o pneu de um carro.
4. faça um algorítimo para trocar uma lâmpada.
Lógica de Programação
Já vimos a interface do VBA, já vimos alguns exemplos, mas na minha opinião falta
nesse blog os alicerces da programação. Programar é uma coisa muito gostosa, mas
existe um conhecimento que é fundamental a todo o programador, é praticamente
impossível programar sem conhecer esse instrumento, ele se chama Lógica de
Programação.
Lógica: Ciência que tem por objeto o estudo das leis do raciocínio; coerência; raciocínio
encadeado; ligação de idéias (dicionário Brasileiro Globo)
Prático não é mesmo? Um programa funciona seguindo uma sequência lógica, criada
pelo programador, funciona assim, o programa executa vários passos ordenados numa
sequencia lógica, que resultam na solução de um problema.
O programador tem que pensar em como vai funcionar o programa, pensar como se
fosse a máquina e definir os passos que o programa vai executar, para depois poder
definir o algorítimo, o que? Você não sabe o que é algorítimo? Tudo bem na próxima
postagem nós vamos falar sobre o algorítimo.
Por enquanto você já deve ter uma idéia um pouco melhor do que é lógica de
programação, não desanime, ao longo dos próximos textos você vai compreender bem
melhor o funcionamento disso, se tiver alguma dúvida ou sugestão não deixe de me
comunicar.
José Alves
Técnico Informática
www.vendadecomputadores.com
Que tal construir a sua própria caixa de diálogo “Localizar”? você pode me
perguntar:
Mas por que motivo eu iria querer criar uma caixa de diálogo localizar se o Excel já
possui esse recurso?
Bom a resposta é simples, primeiro você pode fazer pelo aprendizado, ou você pode
estar construindo um sistema próprio e queira fazer o seu próprio formulário, ou ainda,
você pode utilizar parte do código e adaptar para alguma outra aplicação que você esteja
criando, ou então use a sua criatividade, as opções são muitas.
Depois que você ajeitar esses controles no formulário vamos alterar as seguintes
propriedades dos controles:
Rótulo
Caption: Localizar:
Caixa de Texto
(Name): txtLocalizar
Caixa de Seleção
(Name): chkCelulaInteira
caption: Coincidir Conteúdo da Célula Inteira
Botão de opção 1
(Name): cmdLocalizar
Caption: Localizar
Botão de opção 2
(Name): cmdCancel
Caption: Cancelar
Propriedades do formulário
(Name): frmLocalizar
Caption: Localizar
Quando o botão localizar é clicado, é preciso pegar o valor que estiver escrito na caixa
de texto, e procurar na planilha, quando encontrar precisa ativar a célula. Caso não ache,
ele precisa mostrar uma mensagem, avisando o usuário de que o valor não foi
encontrado na seleção. É preciso também considerar o fato de que o usuário possa não
colocar nenhum conteúdo na caixa de texto, e clique no botão localizar, nesse caso,
precisamos tratar a situação e exibir uma mensagem de erro.
Vamos lá?
Primeiro vamos criar uma variável, para armazenar o conteúdo da caixa de texto.
Vamos chamá-la de varLocalizar,e ela vai ser uma variável do tipo variant,
para que possa possuir também valores do tipo data.
Dim varLocalizar As Variant
Vamos tratar o erro caso o texto procurado pelo usuário não seja localizado,
vamos fazer assim:
On Error GoTo Erro:
Erro:
MsgBox "A Expressão não Pôde Ser Localizada"
Pronto, vamos agora supor que o usuário não coloque nada na caixa de texto e
clique no botão localizar, vamos exibir uma mensagem de texto avisando que
a caixa de texto localizar não pode ficar vazia.
Entre as linhas “On error goto erro: “ e “Erro” escreva o seguinte código:
If txtlocalizar.Text = "" Then
Me.Hide
MsgBox "Digite a expressão a ser Localizada", vbCritical
Me.Show
'muda o foco para a caixa te texto
txtlocalizar.SetFocus
Exit Sub
End If
fácil não é mesmo, mas para garantir eu vou explicar o que cada linha faz.
If txtlocalizar.Text = "" Then
Se a caixa de texto estiver vazia
Me.Hide
Esconde o nosso formulário (fica mais bonito do que uma mensagem sobre o
nosso formulário, mas é só perfumaria, você não precisa colocar essa linha se
você não quiser).
MsgBox "Digite a expressão a ser Localizada", vbCritical
Msgbox mostra a mensagem que nós colocamos entre aspas na tela, o
vbCritical, diz que o formato da mensagem é uma mensagem de erro.
Me.Show
Como nós escondemos o formulário, com o me.hide, agora nós voltamos a
mostrar o formulário.
txtlocalizar.SetFocus
txtlocalizar.setfocus é outra perfumaria, ela faz com que o foco fique na
caixa de texto quando o formulário volta a ser exibido, isso faz com que o
formulário voltando a aparecer já permita ao usuário escrever a nova
expressão a ser localizada, sem a necessidade de clicar na caixa de texto
antes.
Exit Sub
Exit sub sai da rotina e volta para o formulário, sem executar o restante do
código
End IF, fecha o IF que nós abrimos para ver se a caixa de texto não estava vazia.
Agora nós já sabemos se a caixa de texto tem alguma coisa para ser procurada ou não,
então vamos gravar o conteúdo da caixa de texto, na variável strLocalizar. Para fazer
isso basta colocar o seguinte código logo embaixo do end IF.
varLocalizar = txtlocalizar.Text
Agora precisamos verificar se o conteúdo da caixa de texto não é uma data
caso seja uma data precisamos converter o valor que na caixa de texto é
texto para data dentro da variável.
If IsDate(varLocalizar) = True Then
varLocalizar = CDate(varLocalizar)
End If
Pronto, agora podemos começar a procurar o texto na seleção. Mas antes, precisamos
ver se a caixa de checagem não está marcada, porque se estiver marcada, então
precisamos procurar a expressão exata dentro da célula e não apenas parte dela, além
disso precisamos verificar se o conteúdo da caixa de texto não é uma data, porque se for
uma data ela precisa ser convertida internamente em nosso programa para uma data,
caso contrário o nosso programa não vai conseguir localizar.
Else
'caso contrário, procura por partes da célula
Selection.Find(what:=varLocalizar, after:=ActiveCell,
lookat:=xlPart).Activate
End If
'sai do código
Exit Sub
Vamos às explicações,
O código acima verifica se o conteúdo da caixa de texto corresponde à uma data, se
corresponder à data, então o texto é convertido em data "(cDate( varlocalizar)". Em
seguida checa se a caixa de checagem está marcada, se estiver, ele procura a expressão
exata se não estiver marcada, então ele procura por qualquer parte nas células. as linhas
que fazem isso são muito parecidas, o que muda é apenas uma "palavra".
Else
'caso contrário, procura por partes da célula
Selection.Find(what:=varLocalizar, after:=ActiveCell,
lookat:=xlPart).Activate
End If
'sai do código
Exit Sub
Erro:
'se não achar, exibe a mensagem
MsgBox "A Expressão não Pôde Ser Localizada"
End Sub
Pronto, já podemos
localizar dados na nossa planilha, lembre-se no entanto que o nosso código só
procura nas células selecionadas.
Vamos adicionar um módulo ao nosso projeto para chamar o nosso formulário, isso é
importante, principalmente se quisermos criar teclas de atalho para executar a nossa
macro(falaremos sobre isso uma outra hora).
Na Janela do projeto, no Editor do VBA, clique com o botão direito sobre a planilha que
estamos trabalhando, e clique em inserir módulo.
Dentro desse módulo vamos criar o código que vai chamar o formulário frmlocalizar.
Sub CarregaForm()
'carrega o frmLocalizar
frmLocalizar.Show
End Sub
Projeto
Nesse painel você pode navegar por todos os elementos do projeto, tais como,
formulários, módulos classes, etc. Observe que o VBA considera cada planilha aberta
um projeto, na imagem nós temos uma planilha aberta (Pasta1) e a planilha pessoal de
macros (Personal.xlsb).
Por padrão o VBE agrupa objetos semelhantes dentro de pastas, dependendo do projeto
você pode mais de quatro grupos de objetos associados ao projeto.
Módulos de Classe: Módulos de classe são um tipo especial de módulo que permitem
que você crie os seus próprios objetos.
Você também deve ter notado que canto superior esquerdo do painel Projeto existem 3
botões: Exibir código, Exibir Objeto e alternar pastas.
O botão Exibir objeto exibe o objeto selecionado, por exemplo se você selecionar uma
planilha e no painel do Projeto e clicar em ver objeto você vai ser levado
automaticamente para aquela planilha
O botão Alternar Pastas altera a maneira como os objetos são apresentados na janela do
projeto, se agrupados em pastas, ou não.
Uma coisa importante o painel de projeto e que nem todo mundo sabe, é que você pode
arrastar Formulários, módulos e classes entre projetos isso não move o objeto para outro
projeto ele apenas faz uma cópia do objeto no projeto para onde o objeto foi arrastado.
Isso faz com que você economize muito tempo principalmente se você estiver
desenvolvendo um projeto com uma grande quantidade código.
Propriedades
No painel de propriedades você pode alterar uma série de propriedades dos objetos ou
formulários. Esse painel muda de contexto de acordo com o objeto selecionado no
painel projeto ou enquanto você desenha um formulário o painel de propriedades exibe
as propriedades relacionados com o objeto que você está desenhando no Formulário.
Código
A área maior é onde você vai escrever seus códigos ou criar seus formulários, não tenho
muito a dizer sobre ela agora, mas você vai utilizá-la e muito, em breve.
Embora o Excel seja uma ferramenta extremamente poderosa, existem situações onde os
recursos do Excel são insuficientes ou muito complicados para resolver os problemas do
dia a dia, nesses casos precisamos utilizar recursos mais avançados como macros e
programação. A linguagem de programação utilizada na suíte de aplicativos Office é o
VBA (Visual Basic For Application).
Objetivo desse blog não é ensinar você a gravar macros, e sim utilizar o máximo que o
Excel pode oferecer através da programação, vamos falar sobre boas práticas de
programação, linguagem POG (programação orientada a Gambiarra) falaremos sobre a
interface e veremos muitos exemplos de código (com a graça de Deus eu vou conseguir
disponibilizar isso tudo), focados no Excel 2007.
Os procedimentos e o código utilizado nas macros desse blog funcionarão, com algumas
ressalvas em versões mais antigas do Office, com um pouco de pesquisa e adaptação
você vai conseguir utilizar essas preciosidades em qualquer versão do Excel, mas
lembre-se que as funções não serão testadas em versões anteriores à 2007.
Lembre-se sempre de utilizar os códigos e funções por sua própria conta e risco. Eu não
me responsabilizo por qualquer dano, material, intelectual, ou físico, causado pela
utilização dos textos desse blog.
Vou tentar a cada semana colocar algo novo, para vossa degustação, semana que vem
falaremos sobre a interface e suas características. Então até a semana que vem.
José Alves
Técnico Informática
Venda de Computdores
Revista Eletronica
Introdução:
o método OnTime, possui parâmetros que recebem uma data e hora
especificada e qual procedimento deve ser executado. é bom lembrar que
você não está especificando uma data e hora para executar um procedimento,
então essa data e hora não pode ser menor que a data e hora atual.
execução:
abra o excel, e acesse a interface do VBA, insira um novo módulo ou abra o
módulo no qual você deseja inserir o código.
Sub mensagem()
MsgBox "Esta mensagem aparece a cada " & cExecIntervaloSegundos & "
Segundos"
'agenda o procedimento novamente
IniciaTimer
End Sub
caso voce precise parar o timer pode utilizar a sub a seguir
Sub ParaTimer()
On Error Resume Next
Application.OnTime earliesttime:=ExecQuando, procedure:=cProcedimento,
schedule:=False
End Sub
agora é só salvar e sair usando, não esqueça que no office 2007 as planilhas
com macros devem ser salvas em formato .XLSM (Pasta de trabalho habilitada
para macro)