Elisa Maio 0 Report post Posted January 18, 2016 Bom dia, Estou com uma dúvida em vba e preciso de ajuda! O que eu quero fazer é o seguinte: Tenho a coluna "E" com vários códigos por exemplo: 5485900235 (linha em branco) 5486300222 5485900355 (linha em branco) .. .. O que eu quero fazer é, analisar célula a célula, se os 3 últimos números do código for um número impar eu quero que passe para a célula abaixo! Se os 3 últimos números do código for um numero par eu quero que passe para a célula ao lado do código impar (que baixou de célula inicialmente). Será que me diz entender? Obrigada!! Share this post Link to post Share on other sites
tiago.f 22 Report post Posted January 18, 2016 (edited) Olá Elisa, só para confirmar, começando com: 5485900235 (linha em branco) 5486300222 5485900355 (linha em branco) queres obter <Coluna E> <Coluna F> (linha em branco) (linha em branco) 5485900235 5486300222 (linha em branco) (linha em branco) (linha em branco) (linha em branco) 5485900355 (linha em branco) é isso ? o que acontece quando temos 2 códigos pares de seguida? o que acontece se não houver linha em branco quando movemos um codigo impar? substitui o que lá estava? Edited January 18, 2016 by tiago.f Share this post Link to post Share on other sites
Elisa Maio 0 Report post Posted January 18, 2016 (edited) Antes de mais, obrigada pela sua ajuda! Neste primeiro caso eu quero: - O código que acaba em impar (excluindo os últimos zeros), passe para a célula abaixo; - E quero que o código que acaba em par (excluindo os últimos zeros), passe para a célula ao lado. - Ao mesmo tempo quero que apague as linhas que ficam em branco! Quando temos 2 códigos pares seguidos, imaginemos: 5559900519 5559900517 5559900515 5556600222 Isto tem de ficar : <Coluna E> <Coluna F> 5559900519 5556600222 5559900517 5556600222 5559900515 5556600222 Obrigada! Edited January 18, 2016 by Elisa Maio Share this post Link to post Share on other sites
tiago.f 22 Report post Posted January 18, 2016 (edited) Olá Elisa, como fica neste caso: 5559900519 5556600224 5559900517 5556600226 5556600228 5559900515 5556600222 ? Edited January 18, 2016 by tiago.f Share this post Link to post Share on other sites
Elisa Maio 0 Report post Posted January 18, 2016 Terá de ficar : 5559900519 5556600222 5556600224 5556600222 5559900517 5556600222 5556600226 5556600222 5556600228 5556600222 5559900515 5556600222 Share this post Link to post Share on other sites
tiago.f 22 Report post Posted January 18, 2016 (edited) hmm então os que acabam em 24, 26 e 28 não passam para a coluna F ? Só passa se houver uma linha em branco antes, é isso? Edited January 18, 2016 by tiago.f Share this post Link to post Share on other sites
Elisa Maio 0 Report post Posted January 19, 2016 Muito obrigada pela ajuda mas já consegui solucionar o problema (: Share this post Link to post Share on other sites
tiago.f 22 Report post Posted January 19, 2016 Podes por favor partilhar a solução para que outros que se deparem com este tópico? Share this post Link to post Share on other sites
Elisa Maio 0 Report post Posted January 20, 2016 Aqui está: For i = 3 To lastRow If Cells(i, 5) <> "" Then nr = Mid(Cells(i, 5), 4, 5) par = isPar(nr) If Not par Then Cells(i, 5).Select If Cells(i + 1, 5) = "" Then Selection.Cut Destination:=Cells(i + 1, 5) i = i + 1 End If Else Cells(i, 5).Select Selection.Cut Destination:=Cells(i - 1, 6) End If End If Next Share this post Link to post Share on other sites