Ir ao conteúdo

Posts recomendados

Postado

Amigos, boa tarde!

 

Todo mês tenho que formatar uma planilha pra que ela fique num padrão. Esse padrão consiste em colocar os dados sempre em suas respectivas colunas. Observem o exemplo da imagem:

 

image.png.ed7af872c1876f6504584c3d42cacb52.png

 

Note que a primeira linha é o "Padrão". Os dados abaixo dela devem se "deslocar" para sua respectiva coluna. No final tem que ficar assim:

 

image.png.c0da6443e5f8d3404c2402e4033cb23b.png

 

Gostaria de um código que comparasse com o padrão e o organizasse as colunas. Todo mês tenho que fazer o mesmo processo, sendo que o padrão nunca muda (primeira linha).

 

Segue em anexo o arquivo exemplo.

 

Desde já agradeço muito!

 

 Organizar planilha.xlsx

Postado

No arquivo que você disponibilizou há somente uma planilha e me parece que ela contém o resultado desejado, então não há o que se fazer nela.

 

Sugiro que você disponibilize um novo arquivo que contenha além da planilha com o resultado, a planilha com os dados brutos. Imagens não servem.

 

Postado

@osvaldomp Muito obrigado pelo retorno.  As coisas mudaram um pouco aqui, pois você se tornou membro VIP. Que bacana e parabéns! :D

 

Quanto ao arquivo, eu consegui "fuçando" algumas ideias no VBA, visto que necessitava urgentemente no hospital que trabalho. Segue o código que utilizei e a planilha com o código. Se tiver uma sugestão de melhora, fico agradecido.

 

Sub organizar()
  
  Range("A3").Select
ultimo = Selection.End(xlDown).Row

contar = 3
  Cells(1, contar).Select
For y = 1 To 1000


If Cells(1, contar) = "" Then
Exit Sub

Else

'----- TESTE DO LOCALIZAR
'If Left(Cells(1, contar), InStr(Cells(1, contar), "-") - 1) = Left(Cells(3, contar), InStr(Cells(3, contar), "-") - 1) Then
'----- FIM TESTE DO LOCALIZAR


If Cells(1, contar) = Cells(3, contar) Then

contar = contar + 1

Else

If Cells(3, contar) = "" Then

contar = contar + 1

Else

ActiveSheet.Range(Cells(3, contar), Cells(ultimo, contar)).Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

 
End If
End If
End If
   
   Next y


  End Sub

Abraços e muito obrigado.

adicionado 8 minutos depois

Organizar planilha.rar

Postado

Veja se o código abaixo atende.

Considerei que os dados a serem organizados sempre estarão nas colunas conforme a planilha disponibilizada e considerei que a lista de nomes se estende até A100 (altere se desejar).

 

O comando abaixo que está no código exclui as linhas 2 e 3. Para ativá-lo basta remover o apóstrofo inicial.

'Rows("2:3").Delete

 

Sub OrganizaDados()
 Range("D3:E100,F3:F100,I3:J100").Insert Shift:=xlToRight
 'Rows("2:3").Delete
End Sub

 

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!