Notifications
Clear all

qual a melhor forma de "mostrar" endereço tipo "A1:H10" de u

12 Posts
4 Usuários
0 Likes
3,201 Visualizações
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

qual a melhor forma de "mostrar" endereço tipo "A1:H10" de uma range?
com formula a unica forma que achei foi usando Cél e mais um monte de formulas auxiliares

e uma função basta

Function EndereçoRange(Range_Cell As Range)
      EndereçoRange = Range_Cell.Address
End Function

para falar a verdade sinto falta de funções nativas do excel nesse quesito
nem tem como colocar A B e arrastar para completar,
eu por exemplo cria lista numerica e uso essa função

Public Function Letra_Col(ByVal Numero_Coluna As Long) As String     ' '-------(Transforma numero  em letra de coluna)
     Dim CLx As String
     CLx = Cells(1, Numero_Coluna).Address
     Letra_Col = Mid(CLx, InStr(CLx, "$") + 1, InStr(2, CLx, "$") - 2)
End Function

se tiver outra maneira sem ser por função personalizada me falem

 
Postado : 29/09/2018 10:25 am
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Boa tarde.
Seria +- isso o seu objetivo ?

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 29/09/2018 11:06 am
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

obrigado, mas acho que usar uma função vba vai ser o melhor

ENDEREÇO(AGREGAR(15;6;LIN(K:K)/(K:K<>"");1);COL(K1);4;1)&":"&ENDEREÇO(AGREGAR(14;6;LIN(K:K)/(K:K<>"");1);_UltimaColuna;4;1)

é algo complexo demais para um retorno tão simples
depois dizem que vba é complicado

 
Postado : 29/09/2018 11:39 am
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Respeito sua opinião mas eu penso que deve-se esgotar as soluções nativas antes de partir para o VBA (que aliás eu gosto muito).
Mas o importante é saber que, no Excel, sempre haverá diversas formas de abordar um mesmo problema.

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 29/09/2018 11:43 am
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

depende, se é possível usar o vba , pq não o usar?
o problema do vba é que se perde um pouco da dinamicidade da atualização das informações e isso em alguns casos pode até retornar valores errados , mas em raras ocasiões tbm acontece com formulas padrões

como trabalho com muitos dados de forma dinamica formulas em tudo tornaria a planilha pesada e inchada , teve casos até que tive que montar cálculos por macros para deixar apenas os valores na planilha pq calcular direto na planilha ficava insuportável o uso

mas como falou existem varias maneiras de se fazer a mesma coisa

 
Postado : 29/09/2018 11:54 am
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

=CÉL("endereço";G25)
mostra $G$25
e pq
=CÉL("endereço";G25:K30)
não mostra $G$25:$K$30 ?

o fato que tem coisas que poderia ser mais simples , tipo Col() mostrar tbm a coluna como letra ajudaria em muitas montagens de formulas dinâmicas

 
Postado : 29/09/2018 12:05 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Boa tarde, Colegas...

Lembro de ter ouvido em uma Live de uma entrevista com nosso MVP brasileiro, o João B. Savastano, ele comentando exatamente isso: que um dos pecados originais que o time da Microsoft responsável por criar o Excel fez foi o de deixar padrão o uso de letras para as colunas ao invés de números. Mudar isso agora seria muito difícil pela cultura disseminada.

Claro que vcs já sabem, mas só lembrando que, se quisermos uma alternativa à isso, dá pra usar referências no estilo L1C1 ao invés do estilo A1 padrão, coisa que dificilmente fazemos ou lembramos que está disponível (Arquivo > Opções > Fórmulas > Trabalhando com Fórmulas > Estilo de Referência L1C1). Nela as colunas e linhas são numéricas, como se vê na imagem.

Na imagem, para nos referirmos por exemplo à célula =C4, usaríamos ao invés disso =L4C3, ou seja, 4ª linha, 3ª coluna (absoluta).

Uma característica importante desse método é que as referências relativas são inseridas explicitamente, colocando a quantidade entre colchetes (semelhante ao uso na função DESLOC). Por exemplo, se numa fórmula quero me referir à célula 1 linha acima e 6 colunas à direita da célula em que coloquei a fórmula, usaria:

=L[-1]C[6]

 
Postado : 29/09/2018 12:30 pm
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

tipo Col() mostrar tbm a coluna como letra ajudaria em muitas montagens de formulas dinâmicas

=endereço(2,col(C1)

exibe o endereço da célula C2.

Como eu disse, repeito as opiniões contrárias.
Espero que não tenha entendido mal minha frase sobre esgotar as funções nativas pois sou um apaixonado pelo VBA e sei até onde se pode chegar com ele.
Não é meu objetivo (jamais) dar a última palavra.
Mas como o colega Edson disse acima, é possível trabalhar com referências numéricas para as colunas apenas mudando-se o estilo de referência.

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 29/09/2018 12:38 pm
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

wzxnet7 sim, mas não é pratico para usar um endereçamento seletivo
como faria para criar uma tabela que pulasse coluna sim coluna não e fosse em sentido de linhas, dinamicamente ou pular para uma coluna com referencia x colunas depois ?

EdsonBR
realmente, mas já tentei usar assim, e não é só questão de cultura não,
para o raciocínio humano é mais pratico lidar com referencia tipo A1
acho que pecado foi trocar a posição das referencia CL <> LC e não adicionar a capacidade de certas funções

 
Postado : 29/09/2018 12:56 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

=CÉL("endereço";G25)
mostra $G$25
e pq
=CÉL("endereço";G25:K30)
não mostra $G$25:$K$30 ?

De fato essa função CÉL e também a ENDEREÇO são bastante limitadas para essa finalidade.

Outra maneira que dá pra resolver, via fórmula:

=ÍNDICE(ENDEREÇO(LIN(G25:K30);COL(G25:K30);4);1;1) & ":" &
 ÍNDICE(ENDEREÇO(LIN(G25:K30);COL(G25:K30);4);LINS(G25:K30);COLS(G25:K30))

 
Postado : 30/09/2018 8:33 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43753
Illustrious Member
 

.
"edcronos2 escreveu:
=CÉL("endereço";G25)
mostra $G$25
e pq
=CÉL("endereço";G25:K30)
não mostra $G$25:$K$30 ?"
.
Eu faria assim .... =CÉL("endereço";G25)&":"&CÉL("endereço";L30)
.
PS: aliás passarei a usar essa função na função Indireto ... conhecia outras formas dessa função, mas nunca tinha pensado nisso ... eu colocava o endereço digitado, e quando inseria coluna/linha tinha que mudar a matriz na mão!!
.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/10/2018 5:47 am
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

EdsonBR
justamente essas formas complexas de se fazer uma coisa que devia ser simples que eu quero evitar

JSCOPA
é né as vezes a gente não enxerga o poste na nossa frente kkkkk
uso muito Col() e Lin()

mas no caso se vc está usando em funções de matrizes elas já não acompanham o deslocamento e redimensionamento ?
no meu caso é para uso em macro que vai usa o endereço como referencia e como são muitas tabelas e a planilha ainda não tem um formato definido , então as ranges ficam em uma tabela de referencia

hum , se bem que o uso de tabela de referencia dinâmica tbm poderia ajudar em formulas

vou marcar sua resposta como a correta pela sacada
mas ainda vou ter que usar a função por macro
porque referenciar um endereço de outra aba ficaria assim
[EDCRONOS.xlsm]matriz!$E$22:[EDCRONOS.xlsm]matriz!$J$29

=EndereçoRange(matriz!BF31:BK38)
$BF$31:$BK$38

wzxnet7
valeu por dispor seu conhecimento em formulas do excel , certamente para a maioria dos casos fomulas é o melhor principalmente quando se quer uma visualização de mudança dos dados em tempo real algo que não é muito viavel em vba, eu mesmo tenho uma versão portavel do 2003 que uso para visualizar respostas dos gráficos

 
Postado : 01/10/2018 7:14 am