Você está na página 1de 4

Referncias Absolutas e Relativas

ltima Atualizao: 23/11/2011 Introduo Exemplo Alterar Referncias de Mltiplas Clulas Referncias

Introduo
Uma referncia no Excel uma representao de uma clula ou intervalo numa frmula. Por exemplo, na frmula =SOMA(A5;B$3) , h duas referncias: A5 e B$3. Existem dois tipos de referncia no Excel: relativa e absoluta. As referncias so identificadas numa range de acordo com sua notao: as do tipo absoluta precedem de um sinal de $ em sua notao e relativas no so precedidas por nenhum caractere. Numa range como D$6 interpreta-se que a coluna D est em referncia relativa e a linha 6 est em referncia absoluta, uma vez que o mesmo est precedido do sinal $. Todas as combinaes possveis de referncias esto listadas na tabela abaixo:

O sinal de $ significa que o Excel no ir incrementar o(s) valor(es) da(s) coluna(s) e/ou linha(s) especificada(s) (ou decrementar). Para ilustrar os casos, considere a configurao apresentada na tabela abaixo:

Na clula D7 temos a soma de duas ranges B4 e B5. Observe a representao dessas clulas: B$4 significa que a coluna B est inserida em referncia relativa e a linha 4 est inserida em referncia absoluta. $B5 significa que a coluna B est inserida em referncia absoluta e a linha 5 est inserida em referncia relativa. copiar o contedo deD7 a E8, chegamos a uma situao igual tabela abaixo:

Observe que os valores incrementados foram apenas os que estavam em referncia relativa, ou seja, sem o sinal de $. Alm disso, os tipos de referncia foram preservados durante a cpia da clula. Resumindo: B$4 passou a ser C$4 (incrementou-se $B5 passou a ser $B6 (incrementou-se a linha) a coluna)

DICA: No modo de edio da clula, pressione a tecla F4 para alternar seu modo de referncia. Se estiver editando, por exemplo, a clula T5 e apertar F4, ela se tornar $T$5. Apertando F4 novamente, tornase T$5. Repetindo o comando, torna-se $T5. E, finalmente, ao repetir novamente o comando, obtmse T5. Existe uma ressalva em se tratando de referncias absolutas. Suponha que voc possua a situao demonstrada na tabela abaixo e deseja-se inserir uma linha entre as linhas 2 e 3:

Se fizer isso, o Excel automaticamente alterara a referncia $B$3 para $B$4, porque ele manter a clula D5 apontando para o valor6. Se deseja realmente fazer com que uma clula sempre se refira B3, mesmo incluindo/excluindo linhas ou colunas, ento dever usar a sintaxe: =INDIRETO("B3") , uma vez que "B3" interpretado pelo Excel como uma string (cadeia de caracteres), e no como uma referncia que possa reconhecer.

Exemplo
Considere a tabela abaixo:

Suponha que voc tenha uma base de dados grande com essa mesma configurao. Os valores da coluna D representam a soma de seu respectivo valor da coluna C com o valor da clula B1. Como fazer isso? Soluo: Entrar com a frmula, em D4 =C4+B$1 , ou at =C4+$B$1 e copiar a frmula por toda a coluna de dados. Note que, alternativamente, poderia-se, por exemplo, entrar em D7 com =C7+B$1 e copiar o resto da frmula pela coluna de dados. O efeito ser o mesmo, j que se D7 se refere a C7, D4 se refere a C4, D5 com C5, e assim por diante.

Alterar Referncia de Mltiplas Clulas


possvel alterar a referncia de vrias clulas de uma vez, como pode ser entendido pela figura abaixo:

O cdigo usado para fazer essa converso :

Sub AlterarRefernciaFrmulas() Dim rng As Range Dim refstyle As Excel.XlReferenceStyle Dim reftype As Excel.XlReferenceType 'Valores possveis para refstyle: 'xlA1 - Estilo de referncia A1 'xlR1 - Estilo de referncia R1C1 refstyle = xlA1 'Valors possveis para reftype 'xlRelative - Linhas e colunas em referncia relativas 'xlAbsolute - Linhas e colunas em referncia absoluta 'xlAbsRowRelColumn - Linhas absolutas e colunas relativas 'xlRelRowAbsColumn - Linhas relativas e colunas absolutas reftype = xlAbsolute

On Error GoTo Erro For Each rng In Selection.SpecialCells(xlCellTypeFormulas) If rng.HasArray Then rng.FormulaArray = Application.ConvertFormula( _ FromReferencestyle:=refstyle _ , Formula:=rng.Formula _ , ToAbsolute:=reftype) Else rng.Formula = Application.ConvertFormula( _ FromReferencestyle:=refstyle _ , Formula:=rng.Formula _ , ToAbsolute:=reftype) End If Next rng Fim: Exit Sub Erro: If Err.Number = 1004 Then MsgBox "Nenhuma clula com frmula foi encontrada!", vbCritical, "Erro!" GoTo Fim Else MsgBox "Erro durante a converso da clula:" & rng.Address & "." & vbCrLf & _ "Nmero do erro: " & Err.Number & "." & vbCrLf & _ "Descrio do erro: " & Err.Description, vbCritical, "Erro!" Resume Next End If End Sub
Observe as explicaes do cdigo. O refstyle deve ser sempre igual ao estilo que est sendo usado no Excel, e o reftype a forma de referncia relativa ou absoluta a ser convertida. No possvel, por exemplo, converter apenas parte de clulas de uma frmula, como por exemplo: =A1 + A2 convertido sempre para (se refstyle = xlRelRowAbsColumn): =$A1 + $A2 No possvel converter somente uma das referncias.

Você também pode gostar