Ir ao conteúdo

Posts recomendados

Postado

Boa Tarde Amigo.

Estou precisando de um vba que faça o seguinte, na coluna B tenho uma relação de musicas assim:

Citação

cantor A - musica 01

cantor A - musica 02

cantor B - musica 01

cantor B - musica 02

cantor B - musica 03

cantor C - musica 01

cantor C - musica 02

cantor C - musica 03

cantor D - musica 01

preciso que o vba ordene esses dados em outra coluna da seguinte forma....

Citação

cantor A - musica 01

cantor B - musica 01

cantor C - musica 01

cantor D - musica 01

cantor A - musica 02

cantor B - musica 02

cantor C - musica 02

cantor B - musica 03

cantor C - musica 03

ou seja, preciso q o vba pegue a primeira musica de cada cantor, liste, pegue a segunda de cada cantor, e liste na sequencia, pegue a terceira, quarta, e assim por diante, ate misturar as musicas para que não fique duas musicas do mesmo cantor na sequencia.

sao mais de 5mil musicas, de varios cantores, e a quantidade de musicas de cada cantor varia, um pode ter uma musica outro pode ter 30.

 

acho q expliquei direito kkk,

obrigado desde ja a quem tiver uma ideia para me ajudar😎

  • Solução
Postado

@deejaywesley  Veja se este lhe atende.


 

Sub OrdenaDados()
 Dim k As Long, D As Variant, R As Variant
  Application.ScreenUpdating = False
  [D:E] = ""
  Range("B2:B" & Cells(Rows.Count, 2).End(3).Row).Copy [D2]
  Columns(4).TextToColumns DataType:=xlDelimited, Other:=True, OtherChar:="-"
  Range("D2", Cells(Rows.Count, 5).End(3)).Sort Key1:=[E2], Order1:=xlAscending
  D = Range("D2", Cells(Rows.Count, 5).End(3))
  ReDim R(1 To UBound(D), 1 To 1)
  For k = 1 To UBound(D)
   R(k, 1) = D(k, 1) & " - " & D(k, 2)
  Next
  Range("D2").Resize(UBound(R)) = R
  Columns(4).AutoFit: [E:E] = ""
End Sub

 

Considerei os dados a partir de B2; o resultado será colocado a partir de D2.

  • Curtir 1
Postado
36 minutos atrás, deejaywesley disse:

O resultado não ficou igual ao do meu exemplo, ...

 

Realmente, agora notei que ao concatenar, o código está colocando 2 espaços a mais. Seria essa a diferença em relação ao seu resultado ?

 

Se for, então elimine os espaços em >>> & " - " &

Deverá ficar assim >>> & "-" &

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!