Excel – Usando a notação L1C1

Essencialmente uma planilha é uma tabela, e não há modo mais simples do que fazer referência do que por coordenadas de linha e coluna.

O Excel disponibiliza duas formas referenciar as células que compõem uma planilha. São elas o A1 e o L1C1 (Linha X Coluna X) do inglês R1C1 (Row X Column X).

O padrão é a primeira, sendo que letras representar colunas e a linhas os números. É uma forma mais usual por se acostumar facilmente com ela. Mas como nem sempre é fácil traduzir letras em números (Do A ao Z é até simples, mas será fácil saber exatamente a coordenada da coluna CQ?), que geralmente utilizamos em fórmulas mais avançadas como PROCV, PROCH, ÍNDICE, entre outras.

A notação é muito utilizada na gravação de macros, pois prevê maneiras de referenciar células de forma relativa e absoluta.

Referência relativa

Como o próprio nome diz, é utilizada para identificar a uma coordenada a partir de outra. Por exemplo, se queremos saber onde está a linha 5 sendo que estamos na linha 2, a linha 5 está 3 coordenadas abaixo desta.

L[-1] corresponde ao preenchimento de uma linha inteira considerando uma linha acima da célula referenciada inicialmente.

L[1]C[3] referencia uma célula uma linha abaixo e três colunas à direita da célula referenciada inicialmente.

Referência absoluta

Identifica uma coordenada pelo seu valor real, partindo o zero.

L3C3 faz referência a uma célula na linha 3 e coluna 3.

C corresponde ao preenchimento da coluna atual.

Como ativar a notação L1C1 no Excel

Vá ao menu Opções->Ferramentas. Na janela que surgir, vá aba Geral e em Configurações, ative a opção Estilo de referência L1C1.

Opcoes L1C1

Clique OK para confirmar e veja uma célula já com a nova notação apresentada na caixa de nomes:

Resultado final

Importante: quando se configura o estilo de referência em uma pasta de trabalho, ela é carregada para outro computador. Caso a ative para auxiliar no desenvolvimento de fórmulas, lembre-se de voltar ao estilo original para não assustar o usuário.

Abraços

Tomás Vásquez

Emoticons para carros? No mínimo hilário…

É, não faltava mais nada. Que a internet e seus costumes invadem o dia a dia com suas abreviações, manias e outros tralálás é inevitável, mas algumas coisas passam um pouco dos limites do bom senso.

Bem, tudo é uma questão de referência, mas focando no título deste post, um produto lançado no site www.drivemocion.com disponibiliza um equipamento que adiciona ao automóvel a possibilidade de se expressar através de emoticons.

Vai de gosto, mas pessoalmente prefiro ver isso no carro dos outros…

Abraços

Tomás Vásquez
http://www.tomasvasquez.com.br

Impedir Copiar / Colar no Excel com VBA

Não é raro ver essa necessidade em fóruns de Excel que frequento. Por isso, coloco abaixo uma possível solução.

O código abaixo impede via VBA que o usuário utilize a funcionalidades Copiar e Colar no Microsoft Excel. De quebra, ainda desabilita os botões copiar, e recortar das barras de ferramenta padrão do Excel.

Especificamente, o código trata os principal evento de navegação entre células, desativando o contexto CutCopyMode, o que faz com que a marcação do copiar e consequentemente a opção de colar do usuário. Para não atrapalhar o funcionamento de outras planilhas, o código trata também os eventos Workbook_Activate e Workbook_Deactivate, reativando o contexto e os botões das operações em questão.

Todo o código deve ser colocado no módulo EstaPasta_de_Trabalho no VBA (ThisWorkbook em inglês).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Private Sub Workbook_Activate()
Dim oCtrl As Office.CommandBarControl
 
'Desabilita todos os comandos de Recortar
     For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
            oCtrl.Enabled = False
     Next oCtrl
 
'Desabilita todos os comandos de Copiar
     For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
            oCtrl.Enabled = False
     Next oCtrl
 
        Application.CellDragAndDrop = False
 
End Sub
 
Private Sub Workbook_Deactivate()
Dim oCtrl As Office.CommandBarControl
 
'Habilita todos os comandos de Recortar
 
     For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
            oCtrl.Enabled = True
     Next oCtrl
 
'Desabilita todos os comandos de Copiar
     For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
            oCtrl.Enabled = True
     Next oCtrl
 
        Application.CellDragAndDrop = True
 
End Sub
 
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    With Application
        .CellDragAndDrop = False
        .CutCopyMode = False 'limpa a área de transferência
    End With
End Sub

Nem preciso dizer que é preciso ativar as macros para a que o código funcione. Também não preciso lembrar que não ha como ativar as macros automaticamente, a não ser que utilize o recursos de certificados digitais do Office.

Abraços

Tomás Vásquez
http://www.tomasvasquez.com.br

Continuando com o Windows 7

Parece que deu muito o que falar a primeira notícia da Microsoft sobre a nova versão do seu sistema operacional. Blogs e canais de notícias foram inundados com a menção às novidades e possibilidades do novo produto. Se o Vista já anda meio apagado com a popularidade no XP, imagine agora com o Windows 7…

Opiniões a parte, abaixo segue um vídeo demonstrando o potencial do novo sistema.

Alguma semelhança como funcionamento do Microsoft Surface é mera coincidência. Mas não era segredo para ninguém que funcionalidades parecidas seriam adicionadas e muito bem vindas na nova versão do Windows.

Uma velha (e boa) tática da Microsoft: falar muito bem do próximo produto, que está a meses de ser lançado, desviando toda a atenção do que realmente importa ao usuário final: o que ele pode comprar hoje. Mas sempre foi assim, sempre será e a mídia adora morder essa isca.

Abraços

Tomás Vásquez
http://www.tomasvasquez.com.br

Tecnologia e Programação