INTERVALO ENTRE LINHAS
Enviado: 22 Dez 2018 às 15:14
por BITTENCURT
Amigos
Boa tarde
Tenho uma planilha com 3.968 linhas, gostaria de adicionar uma linha em branco a cada intervalo de 64 linhas que seria o total de linhas por pagina que preciso.
Estou inserindo manualmente, mas acho que tem uma formula ou função para isto.
Alem disso ainda adiciono o numero da sequencia manualmente também e acho que existe uma maneira mais fácil de fazer.
Segue anexo a plan exemplo 1 sem separação ou numero de sequencia e a plan 2 como deve ficar.
No aguardo e desde já agradeço
BITTENCURT
Re: INTERVALO ENTRE LINHAS
Enviado: 23 Dez 2018 às 09:26
por babdallas
Fórmulas e funções não executam ações de adicionar/excluir linhas, colunas, etc. Usei VBA.
Código: Selecionar todosOption Explicit
Private Const lngLinIni As Long = 1 'Linha inicial dos dados
Public Sub Main()
Call InserirLinha(64, 1) 'Insere 1 linha a cada 64 linhas
End Sub
Private Sub InserirLinha(lngIntervalo As Long, lngQtdeLin As Long)
Dim lngCont As Long, lngUltLin As Long
With wsDados
lngUltLin = .Cells(.Rows.Count, 2).End(xlUp).Row
For lngCont = lngLinIni + lngIntervalo To lngUltLin Step lngIntervalo
.Cells(lngCont, 1).Resize(lngQtdeLin).EntireRow.Insert
Next lngCont
End With
End Sub
Re: INTERVALO ENTRE LINHAS
Enviado: 23 Dez 2018 às 16:06
por osvaldomp
Experimente:
Código: Selecionar todosSub InsereLinhasENúmeros()
With Range("Y1:Y" & Cells(Rows.Count, 22).End(3).Row)
.Offset(, -12).Formula = "=64+ROW()+INT((ROW(E1)-1)/64)*64"
.Offset(, -12).Value = .Offset(, -12).Value
.Offset(, -24).Formula = "=ROW()+INT((ROW(E1)-1)/64)*64"
.Offset(, -24).Value = .Offset(, -24).Value
.Formula = "=IF(MOD(ROW(),64)=0,""YY"","""")"
.Value = .Value
.SpecialCells(xlConstants, 2).Offset(1).EntireRow.Insert
.Value = ""
End With
End Sub
Re: INTERVALO ENTRE LINHAS
Enviado: 23 Dez 2018 às 17:21
por BITTENCURT
babdallas escreveu:Fórmulas e funções não executam ações de adicionar/excluir linhas, colunas, etc. Usei VBA.
Código: Selecionar todosOption Explicit
Private Const lngLinIni As Long = 1 'Linha inicial dos dados
Public Sub Main()
Call InserirLinha(64, 1) 'Insere 1 linha a cada 64 linhas
End Sub
Private Sub InserirLinha(lngIntervalo As Long, lngQtdeLin As Long)
Dim lngCont As Long, lngUltLin As Long
With wsDados
lngUltLin = .Cells(.Rows.Count, 2).End(xlUp).Row
For lngCont = lngLinIni + lngIntervalo To lngUltLin Step lngIntervalo
.Cells(lngCont, 1).Resize(lngQtdeLin).EntireRow.Insert
Next lngCont
End With
End Sub
Amigo
No seu VBA só a primeira pag está com 64 linhas, as outras estão com 63 .
As linhas em branco são para separar as paginas com 64 linhas..
tem como deixar todas com 64 linhas e uma linha em branco separando cada pagina de 64 ?
Re: INTERVALO ENTRE LINHAS
Enviado: 24 Dez 2018 às 05:57
por babdallas
Veja agora.
Código: Selecionar todosOption Explicit
Private Const lngLinIni As Long = 1 'Linha inicial dos dados
Public Sub Main()
Call InserirLinha(64, 1) 'Insere 1 linha a cada 64 linhas
End Sub
Private Sub InserirLinha(lngIntervalo As Long, lngQtdeLin As Long)
Dim lngCont As Long, lngUltLin As Long, lngUltMultLin As Long
With wsDados
lngUltLin = .Cells(.Rows.Count, 2).End(xlUp).Row
lngUltMultLin = VBA.Int(lngUltLin / lngIntervalo) * lngIntervalo + lngLinIni
For lngCont = lngUltMultLin To lngLinIni + lngIntervalo Step -lngIntervalo
.Cells(lngCont, 1).Resize(lngQtdeLin).EntireRow.Insert
Next lngCont
End With
VBA.MsgBox "Linhas Inseridas"
End Sub