Usuário com melhor resposta
listar dados em uma coluna

Pergunta
-
Olá gostaria de uma ajuda com o seguinte problema:
Possuo uma matriz de dados com n linhas e colunas gostaria de extrair todos os valores em uma unica coluna, por exemplo:
MATIRZ SOLUÇÃO 1 3 1 5 3 4 6 5 8 10 4 21 6 12 8 7 9 10 21 12 7 9 Assim, quando selecionar a matriz a macro devolve a "solução" (todos os dados, um embaixo do outro) em uma unica célula!
Obs: pode ser feito na mesma planilha
Obs: entre o valor 1 e 3 da matriz existe uma célula em branco! isto repete-se por toda matriz!
Grato!!
sexta-feira, 23 de abril de 2010 21:09
Respostas
-
Boa noite, modifiquei o código de função para macro.
Veja se está de acordo agora:
Sub LinearizarMatriz() Dim rgMatriz As Range Dim rgDestino As Range Dim Célula As Range Dim k As Integer Set rgMatriz = Application.InputBox(Prompt:="Defina o intervalo que será linearizado", Type:=8) Set rgDestino = Application.InputBox(Prompt:="Defina o ponto de início da linearização", Type:=8) k = 0 For Each Célula In rgMatriz If Célula <> "" Then rgDestino.Offset(k, 0) = Célula: k = k + 1 Next Célula End Sub
[ ]s
Adilson Soledade - MOS http://adilsonsoledade.blogspot.com/- Sugerido como Resposta adilsonsoledade segunda-feira, 26 de abril de 2010 01:32
- Marcado como Resposta Jnando84 segunda-feira, 26 de abril de 2010 02:53
segunda-feira, 26 de abril de 2010 01:32
Todas as Respostas
-
Experimente esta função
Function LinearizarMatriz(Matriz As Range)
For Each Célula In Matriz
If Célula <> "" Then LinearizarMatriz = LinearizarMatriz & Célula & vbLf
Next Célula
End Function
OBS: A célula que receber a função deverá estar formatada para permitir a quebra de linha.
[ ]s
Adilson Soledade - MOS http://adilsonsoledade.blogspot.com/sábado, 24 de abril de 2010 02:14 -
Adilson, quase isso, mas queria que o resultado dos valores ficasse em uma unica coluna mas em varias linhas, pois vou ter de aplicar isso em uma matriz com mais de 4000 valores, ou seja terei uma unica coluna com 4000 linhas!
Desta forma, ficaria tudo em uma unica célula, sendo quase impossível a visualização
Sera que existe uma maneira de fazer para que o resultado fique cada valor em uma célula, mas na mesma coluna!?
Por exemplo, a solução seria na coluna "D", então:
D1 = 1
D2 = 3
D3 = 5
D4 = 4... e assim por diante
grato
sábado, 24 de abril de 2010 15:19 -
Boa noite, modifiquei o código de função para macro.
Veja se está de acordo agora:
Sub LinearizarMatriz() Dim rgMatriz As Range Dim rgDestino As Range Dim Célula As Range Dim k As Integer Set rgMatriz = Application.InputBox(Prompt:="Defina o intervalo que será linearizado", Type:=8) Set rgDestino = Application.InputBox(Prompt:="Defina o ponto de início da linearização", Type:=8) k = 0 For Each Célula In rgMatriz If Célula <> "" Then rgDestino.Offset(k, 0) = Célula: k = k + 1 Next Célula End Sub
[ ]s
Adilson Soledade - MOS http://adilsonsoledade.blogspot.com/- Sugerido como Resposta adilsonsoledade segunda-feira, 26 de abril de 2010 01:32
- Marcado como Resposta Jnando84 segunda-feira, 26 de abril de 2010 02:53
segunda-feira, 26 de abril de 2010 01:32 -
é isso mesmo adilson!!
parabéns!! você é mestre nisso, ja não é a primeira vez q me ajuda!! parabéns mesmo
você da aula de VBA?!?!?!?!?
segunda-feira, 26 de abril de 2010 02:54 -
Adilson, to precisando de uma força.
Tenho uma planilha de controle de ingressos, com uma pequena base de dados.
Faço a busca, e dá certo, mas eu gostaria de uma configuração em que os dados que ja foram achados uma vez, nao fossem encontrados novamente, que reportasse uma mensagem, tipo: Ingresso já utilizado por:______________
aguardo
Abraços
terça-feira, 15 de fevereiro de 2011 19:49