Notifications
Clear all

Inserir Linhas

14 Posts
3 Usuários
0 Reactions
1,106 Visualizações
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Estou com um problema no inserir linhas, sendo que tem um rodape, pois está copiando e colocando em cima.
Gostaria que fosse inserido entre as duas linhas

Clicando no botão ADD já vai entender, pois gostaria que o rodape fosse descendo conforme vai inserindo linhas entre elas

A verdade que isso está copiando e colando !

Segue em anexo a planilha

Obrigado desde já !

 
Postado : 13/02/2016 10:16 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

Experimente.

Sub InserirLinhaV2()
 Dim UltL As Long
  UltL = Cells(Rows.Count, 2).End(xlUp).Row
   If UltL > 10 Then
    Rows(UltL + 1).Insert
   Else: UltL = 10
   End If
   Cells(UltL + 1, 1).Resize(, 5).Value = Range("A1:E1").Value
   [B1] = [B1] + 1
End Sub

Osvaldo

 
Postado : 14/02/2016 5:34 am
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Só faltou copiar as bordas vertical da A1:E1 que não inseriu

 
Postado : 14/02/2016 7:05 am
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Seu código não está dando certo, pois quando excluo linhas, tipo 3 e 4 ele faz isso 1,2,5,6

O código que passei está trabalhando corretamente do jeito que eu quero, apenas queria saber como contornr o problema do rodape

 
Postado : 14/02/2016 7:32 am
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
 

Olá amigo.
Aplica esse código aqui antes de " End Sub ".

Range("A12:E12").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With

att,

Francisco

 
Postado : 14/02/2016 9:18 am
(@osvaldomp)
Posts: 858
Prominent Member
 

Só faltou copiar as bordas vertical da A1:E1 que não inseriu

Acrescente a segunda linha abaixo.

...
...
   Cells(UltL + 1, 1).Resize(, 5).Value = Range("A1:E1").Value
   Cells(UltL + 1, 1).Resize(, 5).Borders.LineStyle = xlContinuous
...
...

Osvaldo

 
Postado : 14/02/2016 9:19 am
(@osvaldomp)
Posts: 858
Prominent Member
 

Seu código não está dando certo, pois quando excluo linhas, tipo 3 e 4 ele faz isso 1,2,5,6

Não enetendi :roll:

Osvaldo

 
Postado : 14/02/2016 9:21 am
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
 

O código do Osvaldomp funciona 100%, o que te passei é muito grande e ainda tem erros.

 
Postado : 14/02/2016 9:35 am
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Tipo ele faz a sequencia
1
2
3
4
se eu excluir as linhas 3 e 4 e apertar ADD de novo vai fazer isso
1
2
5
6

 
Postado : 14/02/2016 11:15 am
(@osvaldomp)
Posts: 858
Prominent Member
 

Seu código não está dando certo, pois quando excluo linhas, tipo 3 e 4 ele faz isso 1,2,5,6

Amigo, esse assunto de excluir linhas e refazer a sequência numérica nada tem a ver com o código que eu sugeri, é assunto novo. Nem o seu código original trata disso. A numeração a partir de 'B11' é baseada no número existente em 'B1', óbvio que se você excluir linhas a partir de 'B11' a numeração fica com as falhas correspondentes às linhas excluídas.

No lugar do anterior utilize o código abaixo que atende a essa nova solicitação sua. A cada vez que o código rodar ele irá refazer a numeração a partir de 'B11'.

Sub InserirLinhaCorrigirNumeração()
Dim UltL As Long
  UltL = Cells(Rows.Count, 1).End(xlUp).Row
   If UltL > 10 Then
    Rows(UltL + 1).Insert
   Else: UltL = 10
   End If
   Cells(UltL + 1, 1).Resize(, 5).Value = Range("A1:E1").Value
   [B11] = 1
   Cells(UltL + 1, 1).Resize(, 5).Borders.LineStyle = xlContinuous
   On Error Resume Next
   Range("B11").AutoFill Range("B11:B" & Cells(Rows.Count, 1).End(xlUp).Row), xlFillSeries
End Sub

Osvaldo

 
Postado : 14/02/2016 12:25 pm
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Lógico que o código que eu coloquei faz isso, pode até olhar
Agora esse último está criando tudo na linha 13 para baixo, ou seja, para baixo da borda

O código que eu passei, como posso colocar o código para ele somente seja inserido entre linha 10 e 12 (são as bordas ) e inclui na linha 11

Seu código está dando erro ! Você testou ?

 
Postado : 14/02/2016 1:05 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

Lógico que o código que eu coloquei faz isso, pode até olhar
Lógico que NÃO FAZ. Mas se você imagina que faz, então deixa pra lá!

Seu código está dando erro ! Você testou ?

Tem razão, está preenchendo de forma errada. Foi falha minha pois fiz os testes após limpar as células mescladas onde está o texto "Vai está escrito aqui!" e não fiz essa observação na minha postagem. Limpe aquele texto e rode o código. Se o texto for necessário coloque-o na coluna 'B'.

Osvaldo

 
Postado : 14/02/2016 1:42 pm
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Vou dar uma pensada e tentar colocar um for entre linha 10 e 11

 
Postado : 14/02/2016 5:01 pm
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

No código que coloquei era apenas trocar PasteSpecial por Insert Shift:=xlDown

 
Postado : 16/02/2016 7:56 pm