Академический Документы
Профессиональный Документы
Культура Документы
Neste exemplo vamos criar botão que mude da planilha 1 para a planilha 2. Para isso vamos criar
uma macro. Digite Alt + F11 e surgirá a tela do Visual Basic. Agora clique em Inserir / Módulo:
<!--[if !vml]--><!--[endif]-->
<!--[if !vml]--><!--[endif]-->
Este macro chamado de Mudar() ativa a planilha 2 que no Excel é chamada de Plan2. Agora feche a
janela do Visual Basic. Na Plan1 clique na aba inserir e depois em Formas. Há muitas opções de
formas.
<!--[if !vml]--><!--[endif]-->
<!--[if !vml]--><!--[endif]-->
Com o botão direito do mouse clique na forma. Escolha a opção Atribuir macro. Agora escolha a
macro que criamos e clique em Ok.
<!--[if !vml]--><!--[endif]-->
Pronto! Agora na Plan1, quando clicarmos no botão, ele muda para a Plan2.
Para criar o botão na Plan2 ou em outra planilha, repita os mesmos procedimentos e apenas mude
o número da planilha quando criar a macro.
Muitas vezes seria muito bom executar uma macro num tempo pré-determinado ou em intervalos
específicos. Felizmente o Excel fornece um método em VBA que torna isso possível.
Vamos criar uma macro que exiba uma mensagem na tela 5 segundos após o usuário abrir a
planilha.
No editor do VBA (Alt + 11) entre no objeto Esta pasta de trabalho, escolha Workbook e depois
Open, como no exemplo:
<!--[if !vml]-->
<!--[endif]-->
O método Open, ocorre quando o documento do Excel é aberto. Agora dentro desse método insira
os seguintes códigos:
<!--[if !vml]-->
<!--[endif]-->
Agora vamos construir a macro MinhaMacro que será executada. Clique em Inserir / Módulo. Dentro
desse módulo insira os seguintes códigos:
<!--[if !vml]-->
<!--[endif]-->
A macro mostrará a mensagem que escrevemos, através da função MsgBox. Para testar isso, salve
o arquivo, feche-o e abra-o novamente. Após cinco segundos a mensagem será mostrada:
<!--[if !vml]--><!--[endif]-->
Vamos aos exemplos. Criaremos dois botões. Um com a propriedade Color e o outro com a
propriedade ColorIndex.
Primeiramente entre no Editor do VBA (Alt + F11). Clique em Inserir / Módulo. No módulo criado
digite o seguinte código:
<!--[if !vml]--><!--[endif]-->
Na primeira Sub (Procedimento) criamos uma macro que pinta o interior da célula que está ativa
(ActiveCell) utilizando a propriedade ColorIndex com a cor pré-definida 48 (Cinza).
Na segunda Sub criamos uma macro que pinta o interior da célula que está ativa utilizando a
propriedade Color com a cor em RGB (255, 0, 0) que é vermelha.
<!--[if !vml]--><!--[endif]-->
Com o botão direito do mouse, clique na forma Pintar 1 e depois em Atribuir Macro. Agora escolha
PintarColorIndex. Repita o mesmo procedimento no outro botão agora escolhendo a macro
PintarRGB. Pronto! Para testar os botões, selecione uma célula qualquer e clique num dos botões.
A célula é pintada.
Neste exemplo vamos criar botão que mude da planilha 1 para a planilha 2. Para isso vamos criar
uma macro. Digite Alt + F11 e surgirá a tela do Visual Basic. Agora clique em Inserir / Módulo:
<!--[if !vml]--><!--[endif]-->
Dentro do módulo criado, digite a seguinte macro:
<!--[if !vml]--><!--[endif]-->
Este macro chamado de Mudar() ativa a planilha 2 que no Excel é chamada de Plan2. Agora feche a
janela do Visual Basic. Na Plan1 clique na aba inserir e depois em Formas. Há muitas opções de
formas.
<!--[if !vml]--><!--[endif]-->
<!--[if !vml]--><!--[endif]-->
Com o botão direito do mouse clique na forma. Escolha a opção Atribuir macro. Agora escolha a
macro que criamos e clique em Ok.
<!--[if !vml]--><!--[endif]-->
Pronto! Agora na Plan1, quando clicarmos no botão, ele muda para a Plan2.
Para criar o botão na Plan2 ou em outra planilha, repita os mesmos procedimentos e apenas mude
o número da planilha quando criar a macro.
Neste exemplo iremos mostrar como remover o erro #DIV/0! que é causado pela divisão por zero.
Vamos supor que temos a seguinte operação:
Repare que esta operação retorna um erro. Para evitarmos isso insira a seguinte fórmula:
=SE(A1=0;”";B1/A1)
A função SE verifica se A1, que no caso é o denominador, contém o numero zero. Se verdadeira, a
célula fica vazia. Se falsa, a célula faz a divisão. Veja os exemplos:
Situação:
Temos duas planilhas com a mesma estrutura, mas valores diferentes e queremos
comparar valores entre os dois meses. (Ex. Janeiro.xls e Fevereiro.xls)
Podemos confrontar duas planilhas em arquivos diferentes usando uma nova planilha, e
fórmulas. Veja como:
1.Crie uma nova pasta de trabalho (Ex. Comparação.xls)
2.Na célula A1 da nova planilha criada, insira a seguinte fórmula:
=SE([Janeiro.xls]Plan1!A1<>[Fevereiro.xls]Plan1!A1,"Diferente","Igual")
Resultado:
=SEERRO(C14;”")
Feito!!.Assim você poderá manipular e controlar os erros de suas fórmulas com este novo
recurso do Excel 2007.
Função SE com mais de sete condições!
Publicado em 21 de janeiro de 2009
por Fábio Vianna
Vamos supor que você queira que ela analise uma célula que tem nomes de
meses e retorne seus respectivos números de ordem, mas os meses do ano são
12 e a SE oferece análise para 7 condições somente, e agora?
=SE(I$1=”JANEIRO”;1;SE(I$1=”FEVEREIRO”;2;SE(I$1=”MARÇO”;3;SE(I$1=”ABR
IL”;4;SE(I$1=”MAIO”;5;SE(I$1=”JUNHO”;6;SE(I$1=”JULHO”;7)))))))
=SE(I$1=”AGOSTO”;8;SE(I$1=”SETEMBRO”;9;SE($1=”OUTUBRO”;10;SE(I$1=”
NOVEMBRO”;11;SE(I$1=”DEZEMBRO”;12)))))
=SE(I$1=”JANEIRO”;1;SE(I$1=”FEVEREIRO”;2;SE(I$1=”MARÇO”;3;SE(I$1=”ABR
IL”;4;SE(I$1=”MAIO”;5;SE(I$1=”JUNHO”;6;SE(I$1=”JULHO”;7;$iv$1)))))))
Com isso podemos entender que podemos colocar quantas condições forem
necessárias.
Todas as exceções de proteção devem ser marcadas. Digite uma senha e clique em OK.
Confirme a senha e clique em OK.
Ao tentar editar uma célula dos intervalos protegido, uma janela de requisição de senha
aparecerá.
Ontem um internauta me perguntou uma dúvida interessante:Ele queria que após uma data
estipulada não seria mais possível abrir a planilha.
Existe a possibilidade de fazer por VBA uma proteção por senha,mas decidi fazer fechando
diretamente a planilha e caso a data fosse menor uma mensagem de boas-vindas aparecesse na
tela.Inicialmente precisamos na planilha criar uma aba com a data do sistema operacional(utilizando
a função =HOJE() )e com a data desejada de bloqueio.Veja:
Sub protege()
If Plan1.Cells(1, 2) >= Plan1.Cells(2, 2) Then
‘Esta linha compara as duas celulas que contem as datas e se
‘for maior ou igual executa a linha abaixo
Application.ActiveWorkbook.Save
Application.Workbooks.Close
‘Salva e fecha a planilha automaticamente
Else
‘caso contrario o usuario pode abrir e usar a planilha normalmente
MsgBox “Bem vindo!,voce poderá usar a planilha”
End If
End Sub
Após colar note que as linhas em verdes são comentários que fiz para melhor entendimento do
código
*Nesta linha de código: If Plan1.Cells(1, 2) >= Plan1.Cells(2, 2) Then, foi utilizado a planilha 1 com
as celulas B1 e B2 para as datas conforme a imagem acima,caso queira altere com o numero da
planilha e da celula nesta linha.
Após vamos informar o VBA que ao abrir o Excel ele ja execute a macro.Cole o codigo abaixo no
evento “esta pasta de trabalho”.Logo após existe uma figura explicativa:
Verifique se suas macros estão habilitas,salve e abra novamente sua planilha para ver o
resultado.Caso queira mudar a data de bloqueio para ver a mensagem de boas vindas,desabilite as
macros,mude a data de bloqueio,salve e depois reabilite as macros.
Muito legal. Seria interessante se quando a data atual fosse maior que a data de bloqueio exibisse
uma mensagem, ex.: “Data da planilha expirou” e clicando em “OK” a planilha fecha.
Para isto basta substituir o código no módulo da dica anterior para este:
Sub protege()
If Plan2.Cells(1, 2) >= Plan2.Cells(2, 2) Then
MsgBox “Data da planilha expirou!”, vbCritical
Application.ActiveWorkbook.Save
Application.Workbooks.Close
Else
MsgBox “Bem vindo!,voce poderá usar a planilha”
End If
End Sub
Onde foi apenas acrescentado uma linha com a mensagem em formato critical:
Veja o resultado:
Com o Excel 2007 você pode adicionar um efeito de duas cores em sua planilha usando o recurso
de preenchimento em gradiente do Excel. O efeito em gradiente é uma mistura de duas cores,
sendo que uma cor gradualmente vai mudando para outra cor:
<!--[if !vml]-->
Vamos ver como se faz isso. Primeiro selecione as células que você deseja formatar. Na aba Início,
clique na setinha do canto inferior direito do grupo Fonte:
Você provavelmente já quis ocultar uma planilha para esconder alguns dados. O modo mais fácil é
clicar com o botão direito do mouse onde aparece o nome da planilha (na parte inferior da pasta de
trabalho) e então Ocultar. Desta maneira fica fácil de mostrar novamente a planilha oculta (apenas
clique no mesmo lugar e escolha Reexibir).
Se você gostaria de tornar mais difícil o modo de mostrar uma planilha oculta deve ocultá-la em
modo Very Hidden. Para isso, na aba Desenvolvedor clique em propriedades:
<!--[if !vml]--><!--[endif]-->
<!--[if !vml]--><!--[endif]-->
<!--[if !vml]--><!--[endif]-->
Repita o mesmo procedimento, só que agora selecione a opção “-1 – xlSheetVisible”. Pronto! A
planilha agora está visível.
Função Texto
Publicado em 21 de janeiro de 2009
por Fábio Vianna
Podemos formatar uma célula utilizando uma função, a Função Texto. Veja como:
Sintaxe
=TEXTO(valor;format_texto)
Exemplo:
Para transformar o número 5 em 005 poderíamos usar a função:
=TEXTO(5;”000″)
Separando as Palavras
Publicado em 23 de julho de 2010
por Fábio Vianna
Clique em avançar.
Determine o inicio da separação partindo da célula B1 para não perder os dados originais.
Clique em Concluir.
Inserir linha em branco
Publicado em 22 de julho de 2010
por Fábio Vianna
(enviado por Paulo Caetano)
Um de nossos leitores deixou um desafio, “inserir linhas em
branco entre linhas preenchidas, sem o uso de macro”. Segue
a solução que ele enviou.
Obrigada Paulo Caetano!!!!
Sub alfabetica()
‘Cria Variáveis
Dim Primeira As Integer
Dim Ultima As Integer
Dim Classificar As Boolean
Dim Contador As Integer
Dim Contador2 As Integer
‘conta as planilhas
Ultima = Worksheets.Count
Else
With ActiveWindow.SelectedSheets
For Contador = 2 To .Count
If .Item(Contador – 1).Index <> .Item(Contador).Index – 1 Then
MsgBox “Só se podem ordenar planilhas adjacentes”
Exit Sub
End If
Next Contador
Primeira = .Item(1).Index
Ultima = .Item(.Count).Index
End With
End If
For Contador2 = Primeira To Ultima
For Contador = Contador2 To Ultima
If Classificar = True Then
End Sub
Salve o arquivo.
Clique no botão para fazer o teste.
Pulando uma linha em uma MsgBox
Publicado em 12 de janeiro de 2009
por Fábio Vianna
Desta forma:
E temos o resultado:
Resultado
Calcular a Diferença de dias – Office 2010
Publicado em 19 de julho de 2010
por Fábio Vianna
O problema é calcular a diferença de dias entre duas datas,
considerando que temos feriados, e finais de semana.
Imagine que nesse caso especifico, os sábados são considerados dias
úteis.
Como funciona:
Essa rotina será chamada sempre que for salva e guardará na célula A1 da Plan1 a
fórmula =NOW() ou =Agora().
Na janela que abrir, digite regsvr32.exe + o caminho para o arquivo que você
deseja registrar, foi usado neste exemplo o arquivo fm20.dll:
Sub mensagens()
Dim MinhaHora
MinhaHora = Hour(Now)
Select Case MinhaHora
Case 1 To 5
MsgBox “Bom Noite” & Application.UserName
Case 6 To 11
MsgBox “Bom Dia ” & Application.UserName
Case 12 To 17
MsgBox “Bom Tarde ” & Application.UserName
Case 18 To 24
MsgBox “Bom Noite ” & Application.UserName
End Select
End Sub
call mensagens
Com o comando:
Home – Conditional Fomatting (Inicio – Formatação
Condicional)
Escolha a opção Data Bars (Barra de Dados)
Em seguida escolha uma das opções.
Portanto admiti que não sabia de tal informação(eu também não sei de tudo rss) e recorri ao nosso
amigo Google.Achei um post interessante que pode ajudar muita gente a inserir as famosas
animações em suas planilhas:
Fonte: Kioskea.net
Calcular diferença entre horas, com resultado em
minutos
Publicado em 05 de agosto de 2009
por Fábio Vianna
Se pretendemos realizar um cálculo para obter a diferença entre dois horários com o resultado em
minutos, podemos utilizar, por exemplo, os seguintes métodos:
<!--[if !vml]-->
<!--[if !vml]-->
E se a hora final for inferior à hora inicial, podemos utilizar a seguinte fórmula:
Quando somo diversas h0ras em um intervalo,e ultrapassa de um dia(24 horas) ele zera e começa
contando do zero…como procedo para isto não acontecer?
Por padrão quando trabalhamos com horas o Excel vem formatado para hh:mm.Quando somamos
horas e queremos o total “cheio” sem zerar com o fim das 24 horas basta na celula do calculo clicar
o botão direito e ir em formatar células e aplicar o formato 37:30:55.Veja:
Como faço para habilitar a opção de trabalhar com horas negativas no Excel 2007?
Boa noite! =)
Sub alfabetica()
‘Cria Variáveis
Dim Primeira As Integer
Dim Ultima As Integer
Dim Classificar As Boolean
Dim Contador As Integer
Dim Contador2 As Integer
‘conta as planilhas
Ultima = Worksheets.Count
Else
With ActiveWindow.SelectedSheets
For Contador = 2 To .Count
If .Item(Contador – 1).Index <> .Item(Contador).Index – 1 Then
MsgBox “Só se podem ordenar planilhas adjacentes”
Exit Sub
End If
Next Contador
Primeira = .Item(1).Index
Ultima = .Item(.Count).Index
End With
End If
For Contador2 = Primeira To Ultima
For Contador = Contador2 To Ultima
If Classificar = True Then
End Sub
Salve o arquivo.
Clique no botão para fazer o teste.
uma dica do Internauta José Eduardo Chamon muito interessante,e claro irei postar para
vocês..Veja:
OBJETIVO
Neste exemplo, vamos supor que você tenha diversas planilhas de trabalho,
dentro de um único arquivo Excel e que você precise somar todo o
montante dos valores que encontram-se em uma mesma célula mas que
estão nas diferentes planilhas.
EXEMPLO
Na Planilha, crie as seguintes pastas: Plan1, < , Plan2, Plan3, Plan4, Plan5,
> , Plan6
Depois de criarmos o calendário em sua planilha (caso nao saibam criar vejam esta dica antes de
prosseguir: http://dicasdeexcel.com.br/site/2009/01/inserindo-um-calendario-no-excel/)
Depois de criado seu calendário(pode ser o date picker ou o calendario 12.0,os dois fazem a mesma
coisa) basta clicar no esquadro laranja (modo de design) e com o direito do mouse escolher a opção
propriedades
Basta procurar a propriedade Linked Cell e adicionar a célula que receberá a data do calendário:
*Caso queira inserir em outra aba de sua planilha referencie do seguinte modo:
=Nomedaplanilha!A1
Note o resultado:
Na tela que surgir insira os dados do autor,status entre diversas outras opções para classificar sua
planilha.Para alterar outras cofigurações vá na aba superior Propriedades do documento e altere
estas configurações em nível avançado.Veja:
Pronto! Agora seus projetos estao nomeados e identificados.Tenha o real reconhecimento de suas
criações