Três macros de uso diário para Excel

Quando as pessoas escutam “macro de Excel”, pensam em algo muito mais complicado do que realmente é. Sei disso, porque também pensava assim. Mas a complexidade das macros restringe-se à sua criação: copiar e colar uma delas da internet é muito simples. Com as instruções do meu último post, Trabalhando com macros no Excel moderno, você pode configurar e utilizar as macros abaixo.

A macro tem um poder inigualável no pacote Office de automatizar tarefas desnecessariamente complexas e reduzí-las a um clique do mouse. Talvez, para algumas pessoas, essas macros pareçam desnecessárias, pois elas são apenas formas mais simples de fazer uma tarefa que já é simples. Contudo, seu dia será mais produtivo com elas.

Redimensionar todas as colunas à mínima largura possível

A largura padrão de uma coluna no Excel é de 8,43 caracteres, geralmente muito curta para quase todos os propósitos. A seguinte macro permite que você faça em um comando o redimensionamento de todas as colunas, fazendo com que elas se adequem à largura do texto ou número mais largo de cada coluna:

Sub AutoRedimensionarTudo()
    Application.ScreenUpdating = False

    Dim wkSt As String
    Dim wkBk As Worksheet

    wkSt = ActiveSheet.Name

    For Each wkBk In ActiveWorkbook.Worksheets
        On Error Resume Next
        wkBk.Activate
        Cells.EntireColumn.AutoFit
    Next wkBk
    Sheets(wkSt).Select

    Application.ScreenUpdating = True

End Sub

Você pode seguir as instruções da Microsoft sobre como redimensionar colunas e linhas, mas a macro é mais rápida e mais conveniente na maioria dos casos, especialmente quando comparado com o que todo mundo faz: selecionar tudo e clicar duas vezes entre duas colunas. Com esse método popular, se você arrastar uma coluna para o lado sem querer, forçará aquela largura para todas as colunas da planilha inteira, o que as vezes pode significar um retrabalho para reajustar tudo que foi alterado.

Duplicar uma linha logo abaixo da sua cópia original

Eu criei essa macro porque estou no meu segundo emprego seguido onde preciso duplicar linhas diariamente. O processo normal, de selecionar uma linha inteira e usar a opção “Inserir células copiadas” funciona bem se você não estiver usando filtros. Contudo, se as linhas 66 a 79 estão filtradas e a última linha é a 530, tentar inserir algo na linha 80 pode fazer com que você crie a linha 531 sem querer.

Portanto:

Sub DuplicarLinha()
    ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrAbove
    ActiveCell.EntireRow.Copy
    ActiveCell.Offset(1).EntireRow.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End Sub

O método mais comum de duplicar linhas, que expliquei acima, pode ser contornado fazendo a classificação dos dados na ordem adequada — presumindo, claro, que estejam em uma ordem alfabética ou numérica para começo de conversa. Mesmo que esteja, a macro é mais rápida e mais conveniente na maior parte dos casos.

Copiar a soma de várias células para poder colar em outra célula ou programa

Essa é mais complexa para configurar, mas vale a pena.

O primeiro passo é encontrar um arquivo chamado FM20.DLL no seu PC. Eu encontrei no meu em C:\Program Files (x86)\Microsoft Office\root\vfs\SystemX86, mas isso depende da sua instalação do Excel.

Depois disso, você deve ir no Excel, abrir o Microsof Visual Basic for Applications Editor através da combinação de teclas Alt+F11. Com ele aberto, abra o menu “Ferramentas” e escolha a opção “Referências”. Você deve chegar nesta tela:

Caixa de diálogo para adicionar Referências no VBA do Excel.
Clique no botão “Procurar” e, logo em seguida, encontre esse arquivo FM20.DLL. O Microsoft Forms 2.0 Object Library deve ser adicionado à lista de referências.

Uma vez que ele esteja adicionado, você pode utilizar a seguinte macro para copiar a soma dos valores das células que você selecionar:

Sub SomarParaCopiar()
    Dim theData As New DataObject
    theData.SetText Format(Application.WorksheetFunction.Sum(Selection))
    theData.PutInClipboard
End Sub
Anúncios

Trabalhando com macros no Excel moderno

Macros permitem que você automatize soluções para problemas que exigiriam trabalho manual no Excel. Minha intenção é documentar aqui no Metódico algumas macros que eu utilizo, para referência futura. Contudo, para que um leitor consiga utilizá-las, precisará de algumas instruções, que pretendo dar neste post.

Essas dicas devem servir para qualquer Excel da versão 2007 em diante no Windows.

A pasta pessoal de macros

O primeiro passo é habilitar a pasta pessoal de macros. Existem dois conjuntos de instruções para seguir na documentação oficial da Microsoft que explicam perfeitamente o processo:

Desse momento em diante, você só precisará usar as teclas Alt+F11 no Excel para abrir o Microsoft Visual Basic For Applications, onde você irá incluir, modificar e excluir macros daqui por diante. Lembre-se: é no Módulo1 do arquivo PERSONAL.XLSB.

A documentação de como copiar macros de um computador para o outro pode ser encontrada aqui para Excel 2007 e 2010 e aqui para Excel 2013 e 2016.

Salvando a primeira macro

Uma macro de uso comum é a de tornar todas as letras de uma célula em maiúsculas. Metódico viraria METÓDICO com o seu uso. A macro é esta:

Sub ConverterParaMaiusculas()
   For Each Cell In Selection
      If Not Cell.HasFormula Then
         Cell.Value = UCase(Cell.Value)
   End If
   Next Cell
End Sub

Abra seu editor com Alt+F11. Cole a macro acima no editor, dentro do Módulo1 do VBAProject (PERSONAL.XLSB). Ele deve parecer com a imagem abaixo. Não esqueça de salvar após colar a macro.

Editor de macros do Excel 2016 com uma macro para transformar todas as letras de uma célula em maíusculas

Usando macros

Existem várias maneiras de executar uma macro no Excel. Os seguintes artigos da Microsoft explicam para cada uma das versões modernas do Excel:

O meu método favorito é executar uma macro clicando em um botão na barra de ferramentas de acesso rápido, eventualmente utilizando a combinação de teclas Alt+F8 para exibir a lista de macros. A imagem abaixo mostra essa tela. Basta clicar no botão “Executar” para que a macro seja usada na célula que você desejar. Se mais de uma célula for selecionada, todo texto será transformado em letras maiúsculas.

Caixa de diálogo para executar e editar macros no Excel 2016

Repense o que você acha que controla

Pessoas como eu, que moram a uma hora do seu local de trabalho, não tem controle de verdade sobre quando elas chegarão no trabalho.

Contudo, quase todas estão em pleno controle do horário em que sairão de casa.

Poucas pessoas são abençoadas com a habilidade de dormir na hora que desejam. A maior parte gostaria de não sofrer de crises de insônia, enquanto outras gostariam de resistir mais ao chamado de Morfeu.

Contudo, quase todas estão em pleno controle do horário que vão às suas camas.

É um bom exercício revisar a sua lista de compromissos e definir sobre quais dos itens que a compoem você realmente tem algum controle. Desapegue-se daqueles que você não controla e seja disciplinado para seguir aqueles que você está no comando. Se você se sente deprimido ou ansioso por ficar quebrando compromissos a todo momento, esse simples exercício pode lhe recobrar um pouco do seu orgulho e confiança.

Cinco ferramentas de produtividade em 2016

Resolvi compartilhar uma lista de todos os aplicativos do Windows que eu utilizo diariamente para aumentar minha produtividade. Esta é a versão de 2016. Farei uma nova no futuro, se necessário.

f.lux

flux-shot
Tela principal do f.lux.

Utilizo o f.lux para não desgastar minha visão. Ele automaticamente ajusta a luminosidade da tela quando o sol se põe e nasce, baseado na sua localização.

Como isso é produtivo? Consigo trabalhar mais horas sem precisar de colírio com corticoide. Se você tem problema com a luminosidade da tela durante a noite, o f.lux é o que você precisa.

O f.lux é gratuito para baixar em https://justgetflux.com/. Tem versão para MacOS.

Breevy

breevy_anim
Exemplo do Breevy em funcionamento.

Similar ao TextExpander para o MacOS, o Breevy para Windows é um programa que permite criar uma abreviação para um texto muito mais longo ou difícil de lembrar. Por exemplo, é possível configurar para que a palavra “meuend” escreva todo o endereço da sua casa ou escritório; ou “meucnpj” para escrever todo o CNPJ da sua empresa.

Ele também faz cálculos de data. Caso você tenha um prazo padrão de cinco dias corridos para o vencimento dos boletos, é possível criar abreviações como “datahoje” para a data de hoje e “datacincodias” para que o Breevy retorne o dia correto do vencimento.

O Breevy pode ser testado por 30 dias gratuitamente, baixando em http://www.16software.com/breevy/.

Clipboard History

clipboardhistory
Exemplo do meu Clipboard History enquanto eu escrevia este artigo.

O Clipboard History permite que você acesse as últimas dez coisas que copiou e colou no seu Windows utilizando uma tecla de atalho que você escolhe. Isso evita o retrabalho de ficar copiando e colando novamente as duas ou três últimas informações que você precisa para preencher um e-mail ou planilha. Como um bônus, se você copia e cola uma informação todo dia, pode fixá-la ao menu para que ela nunca desapareça.

O Clipboard History é gratuito e pode ser baixado em http://www.outertech.com/en/clipboard-history. Não tenho um similar para MacOS.

Listary

find-as-you-type-explorer-1
O funcionamento mais básico do Listary.

O Listary é uma caixa de texto que permite que você busque qualquer coisa no seu computador. Precisa abrir o Excel? Basta escrever “excel” no Listary. Precisa abrir a pasta que está com o arquivo “planilha1.xlsx”? Escreva “planilha1” no Listary, selecione o arquivo “planilha1.xlsx” e use a combinação de teclas Ctrl+O e use a opção “Abrir a Pasta”.

Um exemplo pessoal do meu uso do Listary é que minha empresa tem várias pastas com informações redundantes: uma pasta onde trabalhamos, e duas outras que tem quase as mesmas informações, mas que são geradas automaticamente. Para que eu não me confunda com as pastas, eu defini uma palavra-chave “pastaprincipal” para acessá-la no Listary, de forma que quando eu quero encontrar um arquivo “folder.pdf” dentro dela, eu escrevo “pastaprincipal folder.pdf” e encontro apenas um, ao invés de três arquivos.

Além disso, o Listary adiciona um menu no Windows para quando você clica duas vezes com o mouse em uma pasta ou na sua Área de Trabalho. Lá, você pode adicionar pastas e arquivos que você usa diariamente como favoritos, tornando o Listary em um programa útil não só para aqueles que gostam de comandos de teclado.

A versão gratuita do Listary pode ser baixada em http://www.listary.com/. O aplicativo similar para MacOS é o Alfred.

7+ Taskbar Tweaker

O 7+ Taskbar Tweaker permite desabilitar a função nativa do Windows (7 em diante) de agrupar as janelas de um mesmo programa sob um só ícone na Barra de Tarefas. Você pode comparar o efeito na imagem abaixo.

7taskbartweaker
Comparação do uso de três pastas de trabalho do Excel na Barra de Tarefas normal do Windows (acima) com a Barra de Tarefas usando o 7+ Taskbar Tweaker (abaixo).

Como eu abordo e-mail

Recentemente, me desliguei da empresa que trabalhei por cinco anos. Ao longo desses cinco anos, estimo que recebi em torno de 46 mil mensagens — uma média de 25 mensagens por dia.

Quando conto isso, a reação que recebo é ou de me perguntar como eu aguentei isso, ou de tentar competir comigo em número de e-mails recebidos. Mas ninguém jamais tentou me provar que a sua conta de e-mail era mais organizada que a minha — não porque eu provo que a minha é mais organizada, mas porque ninguém aborda o assunto.

Organizar uma conta de e-mail exige dois passos: pensar e executar. Pensar é perguntar “sobre o quê é isso?” Executar é criar a pasta sobre o assunto e mover o e-mail para lá. Parece simples, mas se fosse, você já teria feito.1

A primeira regra da organização de e-mails é começar a organizar apenas o que você recebeu nas últimas duas semanas. Se alguém não lhe cobrou sobre algo que está perdido há duas semanas na sua caixa de entrada, esse e-mail pode ser ignorado. Qualquer e-mail mais velho que duas semanas que está na sua caixa de entrada deve ser movido para uma pasta de armazenamento com um nome óbvio, como Antes de 29-02-2016.

Para mim, todo e-mail é um objeto de referência: ou como consulta para resposta posterior, ou para manter registro uma vez que qualquer ação exigida tenha sido efetuada. O objetivo do armazenamento dessas mensagens é isolar o assunto principal delas, armazenando-as em pastas que sejam óbvias. Se você precisou pensar em qual pasta você armazenou um e-mail, há algo de errado na sua organização.

“Quantas pastas são suficientes?” é uma pergunta que não deveria passar por sua cabeça. Para exemplificar, a minha conta de e-mail tem 766 pastas. Dessas, 634 são dedicadas aos hortos florestais do nosso principal cliente que eram monitorados e vistoriados por nós, enquanto 132 abrangem outros assuntos, como relatórios de outros clientes, questões administrativas, minutas de reuniões, cronogramas, recibos de compra, documentos da família etc. Para mim, inclusive, 766 pastas não eram suficientes: deixei de criar muitas pastas por por pura preguiça.

Novamente, cada pasta deve ser tão óbvia que não há esforço mental para lembrar sobre o quê cada uma trata. Sua empresa provedora de TV a cabo tem um nome, e esse deve ser o nome da pasta onde a conta digital é armazenada. Uma pasta Casamento/Planejamento pode conter todos os e-mails necessários para planejar o seu casamento, assim como um Casamento/Documentos pode conter as respostas dos cartórios com a listagem de documentos que cada um exige. Se você se cadastrou em um concurso, o recibo de pagamento pode ir em Consursos, ou se você é concurseiro, pode precisar de mais pastas com o estilo Concursos/Nome do concurso. Advogados podem ser beneficiados ao criar subdivisões para cada cliente, como Fulano/Provas, Fulano/Cobranças, Fulano/Agendamentos etc.

Se quiser filosofar ou trocar ideias sobre e-mail, meu Twitter é @rodrigolj.


  1. Organizar e-mail é uma tarefa que demanda tempo não só para executar, mas para planejar a organização. Se o seu caso é esse e você tiver condições financeiras, contrate um assistente, sem medo de parecer que “está ostentando”. Isso não vai lhe isentar de planejar a organização dos e-mails, mas vai lhe isentar de executar a organização. 

Agendas digitais são horríveis

Você entra no seu Google Agenda e começa a escrever “Ligar para Fulano”. Nesse momento, você pensa: “Hmm, acho que é uma boa ideia eu anexar o meu contato do Google Contatos do Fulano neste compromisso para que eu possa fazer a ligação nesse dia.”

O problema? Não existe essa opção.

E tem gente pedindo isso desde 2009.

Acho que pior ainda são os jornalistas fazendo resenhas sobre esses aplicativos. Vou traduzir abaixo uma parte do post do website Android Authority, chamado “Os 10 Melhores Apps De Agenda Para O Android”:

CalenGoo é um dos aplicativos de agenda que vem fazendo tudo certo por um longo tempo, mas não teve muita publicidade. A interface é um pouco antiquada, mas ainda é muito efetiva e vem com várias visualizações, cores para eventos etc. para ajudar-lhe a organizar sua vida ocupada junto com várias outras funcionalidades. Você pode escolher vários designs para fazer com que seu aplicativo pareça um pouco mais com o que você quer e também vem com suporte ao Evernote e Google Calendar. Também dá suporte ao Android Wear se isso é algo que você gosta.

Isso é a arte de escrever 518 caracteres em inglês sem dizer nada de útil. De fato, não sei se esse autor saberia o que é útil em uma agenda para uma pessoa de negócios, por ser um jornalista; ou para uma mãe, por ser homem. Toda vez que um jornalista fica preguiçoso, esse tipo de artigo é o resultado. E nada deixa um jornalista mais preguiçoso do que fazer resenha de agenda digital.

Então, não tendo encontrado um serviço que faça o que eu acredito ser o mínimo necessário, gostaria de responder à seguinte pergunta:

Como deveria ser uma agenda digital?

Fora os campos básicos que uma agenda digital já tem hoje, ela deveria ter estes itens que são importantes para cobrir todas as possibilidades mais básicas, mas que geralmente não são encontrados nos serviços e aplicativos de agenda:

  • Fonte de largura condensada na visualização de dia, semana e mês;
  • Uma visualização de programação onde seja possível ver o título completo do compromisso, por mais longo que seja;
  • Uma visualização onde seja possível ler todos os detalhes do evento sem abrí-lo;
  • Ter “contextos” ao invés de locais;
  • Avisar quando um local estará fechado;
  • Acessar um site ou aplicativo de mapas direto da agenda;
  • Definir tempo de deslocamento de um compromisso;
  • Avisar o período de horas sem compromissos, de forma gráfica;
  • Anexar contatos ou digitar dados do contato;
  • Capacidade de marcar compromisso como concluído.

Abaixo discuto melhor cada um desses pontos.

Aparência

Legibilidade é crucial em uma agenda. Fontes de largura condensada permitem manter legibilidade sem sacrificar espaço em tela, ou no mínimo ler mais caracteres antes que o espaço acabe. E ele sempre acaba.

Por isso que é importante uma visualização onde o título completo está sendo exibido na íntegra. Um bom título deve dizer tanto o que você precisa fazer, com quem precisa fazer, e qual é o resultado esperado disso. “Ligar para dentista para marcar revisão do aparelho”, por mais sucinto que você tente ser, não cabe no Google Agenda de Android. Como eu sei disso? Eu testei. Eu criei um compromisso com esse nome no Google Agenda de Androide ele termina na palavra “revi…”

Vou aproveitar a deixa de que critiquei duas vezes o Google Agenda e vou tecer um elogio: no Agenda de computador, a visualização onde é possível ler os detalhes digitados de um evento sem abrí-lo existe, mas não inteiramente. Se você digitou alguma descrição do evento, ele não aparece.

Localização e tempo

Localização é importantíssima. Se você deixa um compromisso sem localização, deveria sinalizar que você pode fazê-lo em qualquer lugar que estiver naquele momento; da mesma forma, se você digita a localização em um compromisso, isso deveria sinalizar que aquele é o único lugar onde aquela tarefa pode ser concluída.

Mas a maior parte dos compromissos acontece em locais corriqueiros: sua casa, seu escritório, seu supermercado mais visitado, um fornecedor que você visita semanalmente, a escola da sua criança ou a pet store. Isso são contextos: “em casa”, “no escritório”, etc. Se você pudesse digitar o nome desse contexto na sua agenda e receber as informações relevantes sobre ele, como um alerta vermelho se o horário de funcionamento é incompatível com o horário que você está determinando para o compromisso (isso deveria ser editável pelo usuário), a facilidade de uso da localização seria maior.

Dito isso, quando você cria um compromisso, a agenda deveria analisar três coisas: sua localização atual, a localização do seu compromisso anterior e do seu compromisso posterior. Com base nas informações de trânsito disponíveis, a agenda deve avaliar se você vai chegar a tempo de onde você está ou do seu compromisso anterior, além de avaliar se você vai chegar a tempo para o próximo compromisso.

O tempo que você tem livre é tão ou mais importante do que o tempo que você está ocupado. Por isso, qualquer agenda deveria mostrar o tempo que você tem disponível e por isso é crucial que a sua agenda possa avaliar sozinha quanto tempo livre você realmente tem, descontando os deslocamentos.

Contatos

Contatos precisam da sua própria área. Contatos não são convites, contatos não são anexos, contatos não são pra ter seus celulares escritos no nome do compromisso e muito menos no campo de localização. Não é difícil: nome completo, endereço completo, telefones e e-mails, tendo a opção de excluir da visualização os dados que você não quer que apareça — por exemplo, se não vai mandar carta, não precisa do endereço.

Status

Existem dois tipos de status: não concluído e concluído. Se algo foi concluído, deve poder ser marcado dessa forma. Compromissos são nada mais que tarefas com data marcada, e você nunca usaria uma lista de tarefas que não pudesse marcar como concluída.