Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#59281
Bom dia pessoal, tudo bem?

Preciso de uma ajuda de vocês... Será que alguém conhece um método onde eu possa colar de uma maneira mais automática números que estão todos na horizontal, colando na vertical transpondo?

Eu hoje retiro de um sistema uma base onde uma coluna vem da forma que está no arquivo (Coluna A), uma série de números que vem em uma mesma célula e todos na horizontal. Acontece que preciso transpor esses números para vertical, então o procedimento que eu faço é: primeiro separá-los todos em Texto para Colunas usando a opção Outros e colocando o sinal " | " para que fiquem todos em células distintas, depois copio toda a linha e colo especial marcando a opção Transpor para que assim fiquem todos na Vertical.

Mas como podem ver são centenas de linhas e não da pra ficar fazendo isso manualmente.

Alguém conhece algum método, macro ou VBA que poderia auxiliar?

Desde já, obrigado.
Você não está autorizado a ver ou baixar esse anexo.
#59284
Eu sugiro uma solução via macro.
Imagino que você queira o resultado em outra planilha, Planilha2, por exemplo, é isso?
Informe qual o resultado desejado. Por exemplo: o número que está em A1 passaria para A1 da Planilha2, o que está em A2 passaria para B2, os 6 números que estão em A3 passariam para C1:C6, ... é isso ?

dica ~~~> "Alguém conhece algum método, macro ou VBA que poderia auxiliar?" ~~~> macro e VBA não são alternativas entre si ;)
#59286
"Informe qual o resultado desejado. Por exemplo: o número que está em A1 passaria para A1 da Planilha2, o que está em A2 passaria para B2, os 6 números que estão em A3 passariam para C1:C6, ... é isso ?" ... Não, não é isso.

Sim, preciso que eles passem para outra planilha, mas todos na vertical e não na horizontal...
O numero que está em A1, passar para A1 da Planilha 2, A2, para A2 da planilha 2... os 6 numeros que estão em A3, passar para A3, A4, A5 e A6, e assim sucessivamente.
#59288
Código: Selecionar todos
Sub TransporDados()
 Dim n As Range
  Application.ScreenUpdating = False
  Columns(1).TextToColumns DataType:=xlDelimited, Other:=True, OtherChar:="|"
  For Each n In Range("A1:A" & Cells(Rows.Count, 1).End(3).Row)
   If n.Offset(, 1) = "" Then
    n.Copy Sheets("Planilha2").Cells(Rows.Count, 1).End(3)(2)
   Else: Range(n, n.End(2)).Copy
    Sheets("Planilha2").Cells(Rows.Count, 1).End(3)(2).PasteSpecial Transpose:=True
   End If
  Next n
  Sheets("Planilha2").Columns(1).AutoFit
End Sub
1. antes de rodar o código insira uma planilha vazia nome Planilha2
2. ao rodar o código a Planilha1 deverá ser a planilha ativa

O processo levou cerca de 10 segundos e gerou 35.180 números na coluna A da Planilha2
#59294
Código: Selecionar todos
Public Sub Transpor()
    Dim vrtDados        As Variant
    Dim vrtDadosFinal   As Variant
    Dim lngLinFim       As Long
    Dim lngCont         As Long
    
    With wshPlan
        lngLinFim = .Cells(.Rows.Count, 1).End(xlUp).Row
        
        vrtDados = .Range("A1:A" & lngLinFim).Value2
        
        For lngCont = LBound(vrtDados, 1) To UBound(vrtDados, 1)
            If vrtDados(lngCont, 1) <> vbNullString Then
                vrtDadosFinal = VBA.Split(Expression:=vrtDados(lngCont, 1), _
                                        Delimiter:="|")
            
                wshDest.Cells(1, lngCont).Resize(UBound(vrtDadosFinal) + 1).Value2 = vrtDadosFinal
            End If
        Next lngCont
    End With
End Sub
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord