excel - dicas e programção

65
Publicado em 08 de maio de 2009 por Fábio Vianna 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]-->

Upload: vadete

Post on 26-Jun-2015

1.776 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Excel - Dicas e Programção

Publicado em 08 de maio de 2009 por Fábio Vianna

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]-->

Page 2: Excel - Dicas e Programção

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]-->

Escolha a que desejar e crie uma na planilha:

<!--[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.

Page 3: Excel - Dicas e Programção

<!--[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.

Executando uma macro num horário definidoPublicado em 05 de junho de 2009 por Fábio Vianna

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:

Page 4: Excel - Dicas e Programção

<!--[if !vml]-->

<!--[endif]-->

O método Open, ocorre quando o documento do Excel é aberto. Agora dentro desse método insira os seguintes códigos:

Page 5: Excel - Dicas e Programção

<!--[if !vml]-->

<!--[endif]-->

O método Application.OnTime funciona em determinado tempo. Em nosso exemplo, será somado a hora atual mais cinco segundos, e então a macro MinhaMacro será executada.

Agora vamos construir a macro MinhaMacro que será executada. Clique em Inserir / Módulo. Dentro desse módulo insira os seguintes códigos:

Page 6: Excel - Dicas e Programção

<!--[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:

Código de cores no VBAPublicado em 15 de maio de 2009 por Fábio Vianna

No Excel, há duas propriedades referentes as cores que são Color e ColorIndex.

A propriedade Color utiliza as cores no formato RGB (Red, Green, Blue).

A propriedade ColorIndex utiliza as 56 cores pré-definidas do VBA. Veja a tabela abaixo:

<!--[if !vml]--><!--[endif]-->

Page 7: Excel - Dicas e Programção

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:

Page 8: Excel - Dicas e Programção

<!--[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.

Agora no Excel crie duas formas (aba Inserir/Formas) como no exemplo:

<!--[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.

Criando um botão para mudar de planilha no Excel 2007Publicado em 08 de maio de 2009 por Fábio Vianna

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]-->

Page 9: Excel - Dicas e Programção

Dentro do módulo criado, digite a seguinte macro:

<!--[if !vml]--><!--[endif]-->

Page 10: Excel - Dicas e Programção

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]-->

Escolha a que desejar e crie uma na planilha:

<!--[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.

Page 11: Excel - Dicas e Programção

<!--[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.

Removendo o erro #DIV/0!Publicado em 17 de junho de 2009 por Fábio Vianna

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:

<!--[if !vml]--> <!--[endif]-->

Repare que esta operação retorna um erro. Para evitarmos isso insira a seguinte fórmula:

=SE(A1=0;”";B1/A1)

Page 12: Excel - Dicas e Programção

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:

<!--[if !vml]--> <!--[endif]-->

<!--[if !vml]--> <!--[endif]-->

Comparando planilhas utilizando a formula SEPublicado em 19 de janeiro de 2009 por Fábio Vianna

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:

Na célula A1 da nova planilha criada teremos o valor Diferente caso os valores da célula A1 das planilhas Janeiro.xls e Fevereiro.xls não coincidirem ou Igual caso coincidirem.

***Repare que podemos utilizar vários operadores, caso houver a necessidade de descobrir a diferença entre valores numéricos entre os dois valores, a fórmula ficaria da seguinte maneira:

=([Janeiro.xls]Plan1!A1-[Fevereiro.xls]Plan1!A1)

Nova função do Excel 2007:SEERROPublicado em 21 de janeiro de 2009 por Fábio Vianna Pesquisando as mudanças do Excel 2007 descobri uma nova função: SEERRO.Vamos aprender sua funcionalidade e notar que o artigo do dia 21/08/2008 pode ser utilizado em um método bem mais prático:Ao fazer uma fórmula errada,nossa célula resulta em um erro,na qual podemos “ocultar” com a nova função do Excel 2007.Veja:

=SEERRO(C14;”")

Onde: No primeiro parâmetro é selecionada a célula do erro e no segundo o que você deseja demonstrar(no caso demonstrar a célula em branco).Note o resultado:

Feito!!.Assim você poderá manipular e controlar os erros de suas fórmulas com este novo recurso do Excel 2007.

Page 13: Excel - Dicas e Programção

Função SE com mais de sete condições!Publicado em 21 de janeiro de 2009 por Fábio Vianna

Todos os que usam o Excel há um certo tempo, já se depararam com a função SE, e algum dia já precisaram construí-la com mais de 7 condições, vejamos neste exemplo como podemos fazer isto.

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?

No exemplo a SE vai analisar o que estiver na célula “i1″.

Na célula que você quer o resultado você digita a fórmula abaixo:

=SE(I$1=”JANEIRO”;1;SE(I$1=”FEVEREIRO”;2;SE(I$1=”MARÇO”;3;SE(I$1=”ABRIL”;4;SE(I$1=”MAIO”;5;SE(I$1=”JUNHO”;6;SE(I$1=”JULHO”;7)))))))

Em outra célula qualquer, que como exemplo usaremos a “iv1″, digite a fórmula abaixo

=SE(I$1=”AGOSTO”;8;SE(I$1=”SETEMBRO”;9;SE($1=”OUTUBRO”;10;SE(I$1=”NOVEMBRO”;11;SE(I$1=”DEZEMBRO”;12)))))

Aí você volta à primeira fórmula digitada e acrescenta “$iv$1″ no final, como está abaixo.

=SE(I$1=”JANEIRO”;1;SE(I$1=”FEVEREIRO”;2;SE(I$1=”MARÇO”;3;SE(I$1=”ABRIL”;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.

Protegendo Intervalos de Células com SenhaPublicado em 12 de julho de 2010 por Fábio Vianna

É possível proteger uma área especifica de uma planilha, atribuindo à ela uma senha.Vejamos o exemplo:- Temos uma planilha que será alimentada por pessoas diferentes. Nesse caso cada departamento terá sua senha.

  Na guia Revisão vamos clicar em Permitir que os Usuários Editem Intervalos.  

Page 14: Excel - Dicas e Programção

 Uma janela de edição será exibida, e clicaremos em Novo…  

 Na janela de Novo Intervalo, definiremos o nome do Intervalo, o intervalo de Células e a senha para o mesmo. 

Page 15: Excel - Dicas e Programção

  Ao pressionar o botão OK uma tela de confirmação de senha será apresentada. Basta repetir a senha, e pressionar OK.  

 Retornaremos assim para a tela inicial de Edição de Intervalos.   

 Repita a operação para todos os departamentos, de modo a visualizarmos todos na tela inicial.  

Page 16: Excel - Dicas e Programção

 Agora para essa alteração ter efeito, é preciso proteger a planilha. Clique em Proteger planilha… E a tela de proteção será apresentada.  

 Todas as exceções de proteção devem ser marcadas. Digite uma senha e clique em OK.  

Page 17: Excel - Dicas e Programção

 Confirme a senha e clique em OK. Ao tentar editar uma célula dos intervalos protegido, uma janela de requisição de senha aparecerá.  

 Ao colocar a senha errada, uma janela informará a impossibilidade de prosseguir.  

 Ao colocar a senha correta, as células do intervalo poderão ser editadas. 

VBA:Fechando sua planilha conforme critérios de datas

Page 18: Excel - Dicas e Programção

Publicado em 06 de janeiro de 2010 por Sidney Moraes

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:

Agora acessando o VBA(Alt+F11),vamos inserir um modulo(clicando em inserir módulo)  e colar o seguinte codigo abaixo:

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 abaixoApplication.ActiveWorkbook.SaveApplication.Workbooks.Close‘Salva e fecha a planilha automaticamenteElse‘caso contrario o usuario pode abrir e usar a planilha normalmenteMsgBox “Bem vindo!,voce poderá usar a planilha”End IfEnd 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:

Private Sub Workbook_Open()Call protegeEnd Sub

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.

Vale a pena testar!..VBA puro!

Page 19: Excel - Dicas e Programção

VBA:Fechando sua planilha conforme critérios de datas-Parte 2Publicado em 07 de janeiro de 2010 por Sidney Moraes

Vamos complementar nossa dica de ontem com uma sugestão do internauta.Veja:

Wellerson — 07/01/2010 @ 08:38 am

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) ThenMsgBox “Data da planilha expirou!”, vbCriticalApplication.ActiveWorkbook.SaveApplication.Workbooks.CloseElseMsgBox “Bem vindo!,voce poderá usar a planilha”End IfEnd SubOnde foi apenas acrescentado uma linha com a mensagem em formato critical:

MsgBox “Data da planilha expirou!”, vbCritical

Veja o resultado:

Preenchendo células com o efeito GradientePublicado em 13 de julho de 2009 por Fábio Vianna

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:

Page 20: Excel - Dicas e Programção

<!--[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:

<!--[if !vml]--> <!--[endif]-->

Surgirá a janela Formatar Células. Na aba Preenchimento clique na opção Efeitos de Preenchimento. A janela efeitos de Preenchimento surgirá. Repare que existem muitas opções de Sombreamento. Escolha as duas cores que deseja aplicar o efeito Gradiente, escolha uma das variações e clique em Ok:

<!--[if !vml]--> <!--[endif]-->

Page 21: Excel - Dicas e Programção

Pronto! Suas células foram formatadas. Lembre-se de que você pode sempre editá-las da maneira que quiser:

<!--[if !vml]--> <!--[endif]-->

Ocultando uma planilha do modo “Very Hidden”Publicado em 29 de abril de 2009 por Fábio Vianna

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]-->

Surgirá a seguinte janela:

<!--[if !vml]--><!--[endif]-->

Na opção Visible, escolha “2 – xlVeryHidden”. Pronto, agora a planilha está oculta.

Você perceberá que da maneira tradicional, não há como mostrá-la novamente.

Page 22: Excel - Dicas e Programção

Para reexibir a planilha, devemos entrar no Visual Basic Editor (Alt + F11). Na janela Projeto, seleciona a planilha que está oculta, nesse caso Plan1. Surgirá logo em baixo a janela Propriedades:

<!--[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 TextoPublicado 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)

Valor – é um valor numérico, ou uma referência para um valor numérico.

Format_texto - é um formato de número na forma de texto contido na caixa Categoria da guia Número na caixa de diálogo Formatar células.

<!--[if !vml]--> <!--[endif]-->

Exemplo:

Page 23: Excel - Dicas e Programção

Para transformar o número 5 em 005 poderíamos usar a função:

=TEXTO(5;”000″)

Separando as PalavrasPublicado em 23 de julho de 2010 por Fábio Vianna

Um leitor nosso, mais uma vez mandou um desafio, separar palavras.

Dessa vez temos uma ferramenta que pode nos ajudar.

Temos a seguinte planilha.

 

Selecione a coluna clicando na letra A

 

No menu Dados clique em Texto para Colunas

Page 24: Excel - Dicas e Programção

   

Vamos usar a separação por tipo delimitado. Pois o que determina que seja separado é a existência de espaços.

 

Clique em avançar.

 Escolha a opção de delimitador: Espaço

Page 25: Excel - Dicas e Programção

 

 

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.

Page 26: Excel - Dicas e Programção

  

Inserir linha em brancoPublicado 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!!!! Temos uma planilha com alguns dados. 

Page 27: Excel - Dicas e Programção

 Vamos inserir uma coluna antes da coluna A (ou usar a coluna B). Clique sobre a letra A com o botão direito. E clique sobre Inserir. 

Page 28: Excel - Dicas e Programção

 Na nova coluna A. clique no A1 e coloque o numero 1. Na célula A2 coloque 3, (3 porque queremos inserir uma linha em branco, então somo 1 ao valor que viria abaixo, se quisesse inserir 5 linhas no lugar de 3 colocaria 6). 

 Depois de numerar vamos a última célula preenchida e a partir da célula seguinte vamos colocar o número 1 e preencher com a seqüência até a 279 (soma do número da última linha preenchida +139 que a quantidade de dados que temos). 

Page 29: Excel - Dicas e Programção

  Com os valores lançado, vamos classificar a coluna A. Clique na guia Dados – Classificar. 

 Em classificar por, escolha a coluna A, e pressione OK. 

Page 30: Excel - Dicas e Programção

 Ao classificar, o Excel coloca os valores em ordem, inclusive as linhas que estavam em branco. 

 Agora basta excluir a coluna com os números. 

Page 31: Excel - Dicas e Programção

  “Linhas inseridas”!!! 

Page 32: Excel - Dicas e Programção

Planilhas em Ordem AlfabéticaPublicado em 15 de julho de 2010 por Fábio Vianna

Nesse exemplo temos um arquivo com dez planilhas.  

 Salvaremos o arquivo como: Ordem_Alfabetica lembrando de salvar como Pasta de Trabalho Habilitada para Macro do Excel.  

Page 33: Excel - Dicas e Programção

 Precisamos acessar o Visual Basic Editor, para digitarmos o código da macro, que irá relacionar as planilhas. Para tanto podemos pressionar as teclas Alt + F11, ou usar o comando  

 A janela do VBA será aberta.  

Page 34: Excel - Dicas e Programção

 Vamos inserir um módulo e nomeá-lo.  

 Digitaremos o seguinte código: Sub alfabetica() ‘Cria VariáveisDim Primeira As IntegerDim Ultima As IntegerDim Classificar As BooleanDim Contador As IntegerDim Contador2 As Integer ‘Atribui valor a variávelClassificar = False 

Page 35: Excel - Dicas e Programção

‘irá colocar apenas as planilhas selecionadas‘caso só uma planilha estiver selecionadaIf ActiveWindow.SelectedSheets.Count = 1 ThenPrimeira = 1 ‘conta as planilhasUltima = Worksheets.CountElseWith ActiveWindow.SelectedSheetsFor Contador = 2 To .CountIf .Item(Contador – 1).Index <> .Item(Contador).Index – 1 ThenMsgBox “Só se podem ordenar planilhas adjacentes”Exit SubEnd IfNext ContadorPrimeira = .Item(1).IndexUltima = .Item(.Count).IndexEnd WithEnd IfFor Contador2 = Primeira To UltimaFor Contador = Contador2 To UltimaIf Classificar = True Then ‘Verifica o primeiro caracter de cada planilha e ordenaIf UCase(Worksheets(Contador).Name) > UCase(Worksheets(Contador2).Name) ThenWorksheets(Contador).Move Before:=Worksheets(Contador2)End IfElseIf UCase(Worksheets(Contador).Name) < UCase(Worksheets(Contador2).Name) ThenWorksheets(Contador).Move Before:=Worksheets(Contador2)End IfEnd IfNext ContadorNext Contador2 End Sub  Feche o Visual Basic Editor. Na planilha vamos inserir um botão  

Page 36: Excel - Dicas e Programção

 Clique sobre o botão e depois clique na planilha.Ao clica na planilha uma janela para atribuição de macro surgirá. Escolha a macro relacionarplanilhas.  

 Salve o arquivo.Clique no botão para fazer o teste. 

Page 37: Excel - Dicas e Programção

Pulando uma linha em uma MsgBoxPublicado em 12 de janeiro de 2009 por Fábio Vianna

Para pular linha dentro de uma Message Box utilizamos: Chr(13)

Desta forma:

 

  

 

E temos o resultado:

  Caso você tenha uma dica ou truque, envie para nós: [email protected]: Douglas Hideo

Resultado

Page 38: Excel - Dicas e Programção

Calcular a Diferença de dias – Office 2010Publicado 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. - Temos a seguinte planilha:  

  A diferença de dias entre as duas datas: 01/01/2010 e 31/12/2010, pode ser feita com o calculo simples de subtração.  

  Para visualizar o dado correto, é necessário formatar a célula para número do tipo geral.  

Page 39: Excel - Dicas e Programção

  

  A função NETWORKDAYS, nos permite calcular a diferença entre as datas sem os finais de semana, considerando finais de semana: sábado e domingo.  

 Podemos acrescentar nessa função os feriados. Para facilitar a criação nomearei o intervalo de feriados.

Page 40: Excel - Dicas e Programção

Para isso, selecionaremos o intervalo. E na caixa de nome digitaremos: feriados.  

  Não se esqueça de pressionar o enter para nomear o intervalo.Isto feito vamos editar a função, dê um duplo clique sobre a célula e faça a seguinte alteração.  

  Para calcular a diferença entre as datas considerando que o sábado é dia útil, ou que os dias de descanso são outros que não exatamente

Page 41: Excel - Dicas e Programção

sábado e domingo, temos que usar a função NETWORKDAYS.INTL, que nos permitirá escolher os dias de descanso. Montaremos a função da seguinte forma:

  

A data da última alteração de sua planilhaPublicado em 21 de janeiro de 2009 por Fábio Vianna R.: O Excel não tem  uma função para com que apareça na planilha a data do último salvamento, mas com o evento Workbook_BeforeSave,  podemos fazer isso, aqui vai o código:

Cole o código em Esta_Pasta_de_Trabalho:

Como funciona:Essa rotina será chamada sempre que for salva e guardará na célula A1 da Plan1 a fórmula =NOW() ou =Agora().

VBA: Registrando DLL e OCX no Windows VistaPublicado em 12 de janeiro de 2009 por Fábio Vianna

Page 42: Excel - Dicas e Programção

Depois de ter salvo o arquivo pasta correta, vá para a pasta c:\Windows\System32 e abra o aplicativo Cmd.exe como administrador, clicando com o botão direito, como na figura:

 

 Na janela que abrir, digite regsvr32.exe + o caminho para o arquivo que você deseja registrar, foi usado neste exemplo o arquivo fm20.dll:

 

Após a conclusão, será exibida a seguinte mensagem:

 

Exiba uma mensagem no Excel conforme a hora do dia!Publicado em 21 de janeiro de 2009 por Fábio Vianna

Vamos elaborar uma aplicação onde ao abrir a planilha em questão é exibida uma mensagem de “bom dia”, “boa tarde” ou “boa noite”e o nome do usuário conforme o horário do sistema operacional. Abra a janela do VBA teclando Ctrl + F11. No VBA clique em Inserir/Módulo e digite o seguinte código:

Sub mensagens()Dim MinhaHoraMinhaHora = Hour(Now)Select Case MinhaHoraCase 1 To 5MsgBox “Bom Noite” & Application.UserName

Page 43: Excel - Dicas e Programção

Case 6 To 11MsgBox “Bom Dia ” & Application.UserNameCase 12 To 17MsgBox “Bom Tarde ” & Application.UserNameCase 18 To 24MsgBox “Bom Noite ” & Application.UserNameEnd SelectEnd Sub

Com o comando Application.UserName é extraido o nome cadastrado no Excel.Agora na opção “EstaPasta_de_trabalho” (na barra Projeto, bem acima da caixa Propriedades) no evento Workbook_Open digite:

call mensagens

Formatação Condicional de Barras – Excel 2010Publicado em 13 de julho de 2010 por Fábio Vianna

Temos a seguinte planilha: 

 Vamos criar uma formatação condicional, que preencha a célula de acordo como o valor nela expresso. 

Page 44: Excel - Dicas e Programção

Selecione a área em que a formatação será aplicada. Selecione de B2 até B13. 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.  

 Na versão 2010, quando o intervalo possui números negativos, a formatação parte do centro da célula, destacando assim positivos de negativo.Observe o resultado. 

Page 45: Excel - Dicas e Programção

Trabalhando com HorasPublicado em 20 de julho de 2010 por Fábio Vianna

Criaremos uma planilha de calculo de horas trabalhadas e valor a receber. 

Page 46: Excel - Dicas e Programção

   Primeiro precisamos calcular a quantidade de horas trabalhadas. Considerando a parada teremos que somar os dois períodos trabalhados.  

 É preciso utilizar os parentes para priorizar cálculos.Arraste a lógica até a linha 22. 

Page 47: Excel - Dicas e Programção

Para saber o total de horas trabalhadas, basta utilizarmos a função soma.  

 Ao finalizarmos a função ele retorna o valor 10:35, pelo fato de calcular como relógio, sempre que chegar as 23:59 ele zera e começa a contar novamente. É preciso fazer uma formatação onde ele aceite mais de 24 horas.  

Page 48: Excel - Dicas e Programção

 Selecione a célula a ser formatada, em formatação de número escolha a opção 37:30:55.  

 Agora vamos calcular o valor a receber. Para facilitar a criação da fórmula vamos nomear a célula de valor hora. Selecione a célula de valor, e na caixa de nome especifique um nome para a célula, não se esqueça de pressionar enter.  

 Já com a célula nomeada: criaremos a fórmula.  

Page 49: Excel - Dicas e Programção

 Ao criarmos a fórmula de multiplicação de valor moeda por valor em hora, o Excel automaticamente interpreta que um dos dados é equivocado, e corrige, fazendo uma divisão.Ao acreditar que o valor por hora (expresso em moeda) é um valor equivocado, o valor hora é dividido por 24, sendo assim convertido para horas. Ou seja, o Excel pega o valor R$ 25 Reais, e divide por 24 (numero de horas do dia), resultando 1,04166666666667, ao multiplicar por 9 retornará o valor: R$ 9,38. É preciso reverter o calculo feito pelo Excel. Ou seja, multiplicar por 24.O cálculo ficará da seguinte forma:  

 Retornando o valor correto.Na célula G23, faremos o calculo da soma. 

Page 50: Excel - Dicas e Programção

 

Inserindo um GIF animado no ExcelPublicado em 11 de julho de 2010 por Sidney Moraes

Boa tarde Excelistas como vão?

Nesta semana recebi um email de um internauta com a seguinte pergunta:

Como eu consigo adicionar uma imagem em GIF no excel?

Rapidamente eu corri para o menu INSERIR/IMAGENS e nada..a imagem não se mexia,fui em INSERIR/OBJETO e nada…ela também fica imóvel.

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:

Inserindo um GIF animado no Excel

 

O DicasdeExcel também é procura e troca de informações =D

Fonte: Kioskea.net

Page 51: Excel - Dicas e Programção

Calcular diferença entre horas, com resultado em minutosPublicado 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:

Subtrair os horários e multiplicando por 24 e 60:

<!--[if !vml]-->

Subtrair os horários e formatar o resultado como minutos:

<!--[if !vml]-->

Page 52: Excel - Dicas e Programção

E se a hora final for inferior à hora inicial, podemos utilizar a seguinte fórmula:

<!--[if !vml]--> <!--[endif]-->

Somando horas corretamente no ExcelPublicado em 18 de janeiro de 2010 por Sidney Moraes

Vamos esclarecer a dúvida de um internauta em relaçao a horas no excel:

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?

Vamos lá..é muito simples esta configuração:

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:

A gora suas horas sempre serão acumulativas!

Trabalhando com horas negativas no Excel 2007Publicado em 11 de janeiro de 2010 por Sidney Moraes

Ontem um internauta me fez a seguinte pergunta:

Como faço para habilitar a opção de trabalhar com horas negativas no Excel 2007?

Veja como é fácil:

Clique na famosa “bolinha laranja” do canto esquerdo superior do Excel,logo em seguida em opções do Excel e em avançado,habilitando a opção trabalha com sistema de data 1904.Veja:

Page 53: Excel - Dicas e Programção

Note o resultado:

Boa noite! =)

Planilhas em Ordem AlfabéticaPublicado em 15 de julho de 2010 por Fábio Vianna

Nesse exemplo temos um arquivo com dez planilhas.  

 Salvaremos o arquivo como: Ordem_Alfabetica lembrando de salvar como Pasta de Trabalho Habilitada para Macro do Excel.  

Page 54: Excel - Dicas e Programção

 Precisamos acessar o Visual Basic Editor, para digitarmos o código da macro, que irá relacionar as planilhas. Para tanto podemos pressionar as teclas Alt + F11, ou usar o comando  

 A janela do VBA será aberta.  

Page 55: Excel - Dicas e Programção

 Vamos inserir um módulo e nomeá-lo.  

 Digitaremos o seguinte código: Sub alfabetica() ‘Cria VariáveisDim Primeira As IntegerDim Ultima As IntegerDim Classificar As BooleanDim Contador As IntegerDim Contador2 As Integer ‘Atribui valor a variávelClassificar = False 

Page 56: Excel - Dicas e Programção

‘irá colocar apenas as planilhas selecionadas‘caso só uma planilha estiver selecionadaIf ActiveWindow.SelectedSheets.Count = 1 ThenPrimeira = 1 ‘conta as planilhasUltima = Worksheets.CountElseWith ActiveWindow.SelectedSheetsFor Contador = 2 To .CountIf .Item(Contador – 1).Index <> .Item(Contador).Index – 1 ThenMsgBox “Só se podem ordenar planilhas adjacentes”Exit SubEnd IfNext ContadorPrimeira = .Item(1).IndexUltima = .Item(.Count).IndexEnd WithEnd IfFor Contador2 = Primeira To UltimaFor Contador = Contador2 To UltimaIf Classificar = True Then ‘Verifica o primeiro caracter de cada planilha e ordenaIf UCase(Worksheets(Contador).Name) > UCase(Worksheets(Contador2).Name) ThenWorksheets(Contador).Move Before:=Worksheets(Contador2)End IfElseIf UCase(Worksheets(Contador).Name) < UCase(Worksheets(Contador2).Name) ThenWorksheets(Contador).Move Before:=Worksheets(Contador2)End IfEnd IfNext ContadorNext Contador2 End Sub  Feche o Visual Basic Editor. Na planilha vamos inserir um botão  

Page 57: Excel - Dicas e Programção

 Clique sobre o botão e depois clique na planilha.Ao clica na planilha uma janela para atribuição de macro surgirá. Escolha a macro relacionarplanilhas.  

 Salve o arquivo.Clique no botão para fazer o teste. 

Page 58: Excel - Dicas e Programção

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

Digite os seguintes valores na Plan1 conforme exemplo abaixo:

Page 59: Excel - Dicas e Programção

Note que todas as folhas de dados contém valores na célula B1. Na Plan1 na célula A1 coloque a seguinte instrução =SOMA(‘<:>’!B1) Você somou todos os valores da célula B1 contida nas folhas de dados que estão entre os sinais < e >.

Adicionando o valor do calendário em uma célula de sua planilhaPublicado em 25 de abril de 2010 por Sidney Moraes

Boa noite Excelistas!

A dica de hoje é baseada em uma dúvida de um internauta.Veja:

Tenho uma dúvida a solucionar.Inseri um calendário na planilha do escritório, porém não consigo vincular a data do calendário a uma célula. Há como realizar este procedimento?No aguardo.

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

Page 60: Excel - Dicas e Programção

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:

 

 Aplique-a em seus projetos!

Page 61: Excel - Dicas e Programção

alguns “espertinhos” usam de nossas idéias e projetos para ganhar a fama.Aprenda agora a criar um autor e definir identificações para suas planilhas.Assim toda vez ao abrir sua planilha aparecerá o mesmo.Veja:

No menu do Office(a bolinha laranja) clique em personalizar e em seguida propriedades:

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