Usuário com melhor resposta
Ordenar lista vba

Pergunta
-
Bom dia!
Ai galera, estou novamente aqui solicitando a ajuda de todos. A questão é a seguinte:
Tenho uma planilha com vários produtos e repetidos, exemplo:
tomate
tomate
tomate
melão
tomate
melão
ovos
ovos
tomate
tomate
melão
tomate
tomate
tomate
melão
tomate
melãoo que eu faço manualmente é ordenar por nome, uso o tomate como base principal e ordeno o melão a cada 03 tomates, apos ordenar o
melão com o tomate, eu ordeno os ovos a cada 07 tomates/melão, exemplo:Primeiro - Segundo - Terceiro passo
tomate tomate tomate
tomate tomate tomate
tomate tomate tomate
tomate melão melão
melão tomate tomate
melão tomate tomate
melão tomate ovos
ovos melão tomate
ovosO número de ordenação da lista é váriável, por isso eu queria um código VBA que faça esta ordenação, sendo que eu definiria a
quantidade a ser ordenada. Exemplo: minha lista de tomate tem 200 tomates, minha lista de melão tem 50 e minha lista de ovos tem 40.
Vou querer ordenar o melão a cada 04 tomates e os ovos a cada 10 tomates/melões.Bem esta é minha solicitação de ajuda,
Grato pelo apoio,
Respostas
-
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 20:26
Todas as Respostas
-
-
Sim, pode ficar vários tomates juntos no final sim. no meu exemplo os tomates não são problema e sim os demais problemas.
Você tinha ate me enviado um codigo que fazia a conta e divisão dos item e copiava e colava os valores conforme a divisão, porém eu agora necessito de um código onde eu possa manipular o valor, não é necessário um imputbox, posso modificar direto no vba conforme minha necessidade. segue código anterior:
Sub Exemplo() Dim lDivisor As Long Dim lRowsDivisor As Long Dim lRowsDividendo As Long Dim lPasso As Long Dim lDividendo As Long Dim wsDividendo As Worksheet 'Plan1 Dim wsDivisor As Worksheet 'Plan2 Set wsDividendo = ThisWorkbook.Sheets("Plan1") Set wsDivisor = ThisWorkbook.Sheets("Plan2") lRowsDividendo = wsDividendo.Cells(wsDividendo.Rows.Count, "A").End(xlUp).Row lRowsDivisor = wsDivisor.Cells(wsDivisor.Rows.Count, "A").End(xlUp).Row lPasso = lRowsDividendo / lRowsDivisor For lDivisor = lRowsDivisor To 1 Step -1 wsDivisor.Rows(lDivisor).Copy wsDividendo.Rows(lRowsDividendo + 1).Insert lRowsDividendo = lRowsDividendo - lPasso Next lDivisor End Sub
grato,
-
-
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 20:26