Notifications
Clear all

Inserir linha após sequência de datas

7 Posts
2 Usuários
0 Reactions
1,019 Visualizações
(@valvees_)
Posts: 0
New Member
Topic starter
 

Boa pessoal, blza?

Novato aqui e com um sério problema. Estou tentando criar um macro que insira uma linha após uma sequência de datas, exemplo:

19/04/2013
19/04/2013
19/04/2013

20/04/2013
20/04/2013
20/04/2013

21/04/2013

O problema é que não sei programa, só tenho a lógica e quando vou alterar alguma formula que acho na internet, eu não sei fazer ele analisar a linha e sim, colocar um texto fixo. Daí ele acaba colocando linha após cada data, rs.

Alguém tem uma solução? São muuitas planilhas que terei que usar isso.

 
Postado : 05/06/2014 9:54 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Veja este código:

Sub Separa_Data_GT()

Dim PL      As Long 'PL = Primeira Linha
Dim UL      As Long 'UL = Última Linha
Dim i       As Long
Dim Coluna  As String

Coluna = "A"

PL = Cells(2, Coluna).Row
UL = Cells(Rows.Count, Coluna).End(xlUp).Row

For i = UL To PL Step -1
    If Cells(i, Coluna).Value = Cells(i - 1, Coluna).Value Then
        'não faz nada
    Else
        Cells(i, Coluna).EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    End If
Next i
End Sub

Onde está:

Coluna = "A"

Coloque a coluna das datas, se não for a coluna "A"

 
Postado : 05/06/2014 10:18 am
(@valvees_)
Posts: 0
New Member
Topic starter
 

Mais que perfeito!
Muitíssimo obrigado.

Eu acessei o fórum pela primeira vez hoje, mas vou verificar se existe alguma área para tutoriais e tentar aprender alguma coisa, quem sabe até ajudar com alguma coisa.

Salvou meu dia gtsalikis, kk. :D

 
Postado : 05/06/2014 10:39 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Não temos exatamente "tutoriais", porém,

temos a board de dicas e macetes:
viewforum.php?f=28

e temos a board de modelos (biblioteca), alguns com soluções para problemas comuns:
viewforum.php?f=21

Abs

 
Postado : 05/06/2014 10:46 am
(@valvees_)
Posts: 0
New Member
Topic starter
 

Opa, blza?

Estão me pedindo algo um pouco diferente agora.
Estou precisando inserir uma linha após cada mês.

As datas não são fixas e ficam assim, por exemplo:

01/07/2012 
01/07/2012 
02/07/2012 
02/07/2012 
05/07/2012 
05/07/2012 
05/07/2012 
05/07/2012 
05/07/2012 
09/07/2012 
10/07/2012 
21/07/2012 

Acredito ter entendido a lógica da PL e UL, mas penso que sirva somente para exatas, pois tentei mudar o código e não consegui.
Alguém tem uma solução?

 
Postado : 09/06/2014 8:28 am
(@gtsalikis)
Posts: 2373
Noble Member
 

É quase a mesma coisa:

Sub Separa_Mes_GT()

Dim PL      As Long 'PL = Primeira Linha
Dim UL      As Long 'UL = Última Linha
Dim i       As Long
Dim Coluna  As String

Coluna = "A"

PL = Cells(2, Coluna).Row
UL = Cells(Rows.Count, Coluna).End(xlUp).Row

For i = UL To PL Step -1
    If Month(CDate(Cells(i, Coluna))) = Month(CDate(Cells(i - 1, Coluna))) Then
        'não faz nada
    Else
        Cells(i, Coluna).EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    End If
Next i
End Sub

Abs

 
Postado : 09/06/2014 10:17 am
(@valvees_)
Posts: 0
New Member
Topic starter
 

Obrigado, mestre!
Funcionou 100%!

 
Postado : 09/06/2014 10:28 am