Notifications
Clear all

Incluir linhas com intervalos

5 Posts
2 Usuários
0 Reactions
1,273 Visualizações
(@fabiruba)
Posts: 27
Eminent Member
Topic starter
 

Pessoal, bom dia

Vamos para mais uma

Na tabela em anexo tenho 3 abas

Faixas de CEP - Onde mostra as faixas de cada CEP por estado (Capital e Interior)
Areas de Risco - São as faixas onde os Correios consideram como area de risco para entregar (detalhe muda mês a mês), ou entrega interna, que significa que o cliente deve retirar na agencia mais próxima
Quebras por faixa - é onde eu preciso que a mágica aconteça

O que eu preciso ?
Vou colocar como exemplo a primeira faixa de risco que é o CEP 02318-000

Sei que o primeiro CEP de SP é o 01000-000, portanto minha primeira linha na aba "Quebras" será ela (está em vermelho); o cep final dessa linha deve ser o último antes da próxima quebra, ou seja 02317-999, aí na linha anterior entra a primeira faixa da area de risco.

Ou seja

Na coluna CEP inicial devará ser sempre a linha anterior +1
Preciso criar entre as faixas de area de risco as faixas de CEP que não são de risco e colocar entre elas, imaginei na ABA "Quebras por faixas"

Fui claro?

Obrigado pela ajuda
Forte abraço !

Fabiruba
Long Live Rock and Roll !!!
Guarulhos -SP

 
Postado : 28/09/2016 7:09 am
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Olá!
Vou te sugerir uma solução via VBA, com o código abaixo para ser rodado direto na planilha Area de Risco.

Sub QUEBRA_POR_FAIXAS()

    Application.ScreenUpdating = False
    
    rLast = Range("D" & Rows.Count).End(xlUp).Row - 1
    
    For i = rLast To 3 Step -1
        
        If Range("D" & i).Value + 1 <> Range("C" & i + 1) Then
            Rows(i + 1 & ":" & i + 1).Insert Shift:=xlDown
            Range("C" & i + 1).Value = Range("D" & i).Value + 1
            Range("D" & i + 1).Value = Range("C" & i + 2).Value - 1
            Range("E" & i + 1).Value = "" 'Coloque entre as aspas um texto para a coluna E
            i = i + 2
        End If
        
        rLast = Range("D" & Rows.Count).End(xlUp).Row
              
    Next i
    
    Application.ScreenUpdating = True
    
End Sub

Como são muitas linhas o código pode demorar uns minutos para rodar.

Veja no arquivo. Para rodar a macro é só apertar o botão.

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 28/09/2016 1:21 pm
(@fabiruba)
Posts: 27
Eminent Member
Topic starter
 

Rafael, muito obrigado pela ajuda

Quase !

Note que nessa relação eu tenho 3 estados
As faixas por estado estão na aba faixa de CEP
Precisaria que a primeira linha do estado fosse o CEP inicial referente a esse estado e a final tb

é possível ?

Cara, mas já me ajudou muito
Obrigado

Fabiruba
Long Live Rock and Roll !!!
Guarulhos -SP

 
Postado : 28/09/2016 1:34 pm
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Até daria pra mexer no código, mas estou sem tempo no momento.
Esses incrementos são tão simples e poucos que você levará pouquíssimo tempo para ajustar na planilha manualmente após rodar a macro.
Abraços!

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 28/09/2016 1:56 pm
(@fabiruba)
Posts: 27
Eminent Member
Topic starter
 

Beleza Camarada !!!!

Muito obrigado Mesmo

Fabiruba
Long Live Rock and Roll !!!
Guarulhos -SP

 
Postado : 28/09/2016 2:06 pm