Notifications
Clear all

TRANSFORMAR VÁRIAS COLUNAS EM UMA SÓ UTILIZANDO MACROS

5 Posts
2 Usuários
0 Reactions
1,685 Visualizações
(@roberval)
Posts: 0
New Member
Topic starter
 

Olá,
Tenho uma planilha excel com mais de 1.000 (mil) colunas com 4 números como exemplo abaixo:
02 07 06 ......................
05 09 08 ......................
10 11 13 ...................
12 15 14 ...................

Como crio uma macro para que ela ordene automaticamente as colunas de acordo com o exemplo abaixo?
02
05
10
12
07
09
11
15
06
08
13
14
Ou seja, quero transportar cada uma das mil colunas de maneira automática, e transformá-las em uma única coluna. A macro deve parar quando chegar na última coluna transportada.
Como fazer?
Grato!

 
Postado : 25/12/2014 11:25 am
(@edcronos)
Posts: 1006
Noble Member
 

é uma questão facil, mas é necessário alguns dados
tipo
os dados de origem, em que coluna começa, e em que linha

todas as linhas tem a mesma quantidade de colunas preenchidas ?

para onde vai os numeros em linha,
na mesma ABA ?
em que linha vai começar e em que coluna vai ficar

 
Postado : 25/12/2014 11:59 am
(@roberval)
Posts: 0
New Member
Topic starter
 

Olá Edcronos,

A primeira sequencia de números (coluna) começa na A1 e termina na A4.
A segunda seq. começa em B1 e termina em B4 e assim por diante até, digamos CV1 e CV4 (se vc puder me mostra um exemplo pra 100 números que é a coluna CV, adapto pra 1.000 depois).
Não existe espaço em branco entre as linhas nem as colunas.
Essas colunas acima devem ser transpostas para as posições que iniciam em A10 até A409, ou seja, as 100 colunas anteriores contendo 4 números cada, agora viram uma única coluna com 400 números.
Grato.

 
Postado : 25/12/2014 1:43 pm
(@edcronos)
Posts: 1006
Noble Member
 

se eu entendi bem
a leitur é por linha de 1 a 4 e depois pulando a coluna --->>> a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4...
e a escrita é por linha até acabar os dados

Sub colin()
li = 1
ci = 1
lf = Cells(Rows.Count, ci).End(xlUp).Row
cf = Cells(lf, Columns.Count).End(xlToLeft).Column
ctc = 1
ctl = 10
For c = ci To cf
For l = li To lf
Cells(ctl, ctc).Value2 = Cells(l, c).Value2
ctl = ctl + 1
Next: Next
 
Postado : 25/12/2014 2:15 pm
(@roberval)
Posts: 0
New Member
Topic starter
 

Show de bola Edcronos!
A solução foi perfeita.
Vc é bom nisso!
Obrigado.
Abraço.

 
Postado : 25/12/2014 6:53 pm