Notifications
Clear all

Inserir ou remover linhas com critérios

7 Posts
2 Usuários
0 Reactions
1,603 Visualizações
(@felipesalomao)
Posts: 103
Estimable Member
Topic starter
 

Olá Pessoal, tenho uma planilha que o número de linhas onde ficam cadastrados os produtos variam, fiz um código para copiar os produtos que ficam na coluna C, ele copia para para uma coluna especifica em uma guia que serve como banco de dados, juntos da coluna dos produtos C22 até ultimoproduto tambem registra quantas linhas de produtos tem.

Vamos trabalhar com número 22 linhas de produtos, o que quero desenvolver é o seguinte:
o código vai contar quantas linhas tem atualmente (isso pode deixar comigo que sei fazer), ele seleciona a ultima linha (sei fazer também), se o número da ultima linha for 15 ele irá adicionar 7 linhas extras (ai que vou precisar de ajuda), se o número da ultima linha for 25 ele vai remover 3 linhas, obs: ao adicionar linhas ele vai replicar a linha inteira da ultima linha.

Código atual:

Sub testesdiversos()
Dim LastRow As Long, LinhasTotais As Long, Data As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Data = Format(DateTime.Now, "dd/mm/yyyy - hh:mm:ss")
 With ActiveSheet
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
 End With
 Range("C22", Cells(LastRow, 3)).Copy
 Sheets("BDORCAMENTOS").Select
 Range("B5").Select
    ActiveSheet.Paste
    Range("B4") = LastRow - 21
    Range("B3") = Data

Application.EnableEvents = True
End Sub

Entenderam ? Vlw !!

 
Postado : 21/08/2012 12:45 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Realmente não entendi?
O que quer dizer como adicionar 7 linhas?

 
Postado : 21/08/2012 9:42 am
(@felipesalomao)
Posts: 103
Estimable Member
Topic starter
 

Realmente não entendi?
O que quer dizer como adicionar 7 linhas?

Oi Reinaldo, segue modelo, só olhar e você vai entender. Desde já, Muito obrigado pela Ajuda !!

 
Postado : 21/08/2012 10:28 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pergunta:
A mascara que disponibilizou, sempre iniciará com 12 linhas, ou eventualmente poderá iniciar como mais?

 
Postado : 21/08/2012 12:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se atende ao que espera

 
Postado : 21/08/2012 12:53 pm
(@felipesalomao)
Posts: 103
Estimable Member
Topic starter
 

Pergunta:
A mascara que disponibilizou, sempre iniciará com 12 linhas, ou eventualmente poderá iniciar como mais?

Sempre irá variar, pois depende do ultimo orçamento que fiz.

Já consegui resolver, ficou bem comprido.

Para gravar o orçamento:

Sub testesdiversos()
Dim LastRow As Long, qtdprodutos As Long, Data As String, resposta As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Data = Format(DateTime.Now, "dd/mm/yyyy - hh:mm:ss")
resposta = InputBox("Descrição do Orçamento", "Entrada de Dados")
If resposta = Empty Then

Else
 With ActiveSheet
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    ActiveSheet.Cells(.Rows.Count, 1).End(xlUp).EntireRow.Select
qtdprodutos = ActiveCell.Offset(1, 5)
 End With
 Range("C22", Cells(LastRow, 3)).Copy
 Sheets("BDORCAMENTOS").Select
 Range("B6").Select
    Selection.ColumnWidth = 32.01
    ActiveSheet.Paste
    Range("B1") = ActiveCell.Column + 1000
    Range("B2") = resposta
    Range("B3") = Data
    Range("B4") = LastRow - 21
    Range("B5") = qtdprodutos
    Range("B1:B5").Select
    With Selection
        .HorizontalAlignment = xlLeft
    End With
    
Sheets("Cadastro").Select
Application.EnableEvents = True

End If
End Sub

Para retomar o número de linhas e valores:

Sub testes2()
Dim LastRow As Long, linhasorcamento As Long, qtdprodutos As Long, Lista As Long, linhas3 As Long, linhas2 As Long, Data As String, resposta As String, linhas As String, produtos As String
Application.ScreenUpdating = False
Application.EnableEvents = False

 
Sheets("BDORCAMENTOS").Select
    
    resposta = Range("B2").Value
    Data = Range("B3").Value
    linhas = Range("B4").Value
    produtos = Range("B5").Value
    Sheets("Cadastro").Select

With ActiveSheet
    Rows("22:22").Select
    Selection.Copy
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    ActiveSheet.Cells(.Rows.Count, 1).End(xlUp).EntireRow.Select
    
    
    
End With
 Lista = LastRow - 21
linhas2 = Lista - linhas
If linhas2 = 0 Then
Else
If linhas2 < 0 Then
ActiveCell.Offset(1, 0).Rows("1:" & -linhas2).EntireRow.Select
 Selection.Insert Shift:=xlDown
 
 Else
 linhas3 = linhas2 + 1
  ActiveCell.Offset(-linhas3, 0).Rows("1:" & linhas2).EntireRow.Delete
 
 End If
 End If
 
 Sheets("BDORCAMENTOS").Select
linhasorcamento = Range("B4").Value + 5
  Range("B6", Cells(linhasorcamento, 2)).Select
    Selection.Copy
    Sheets("Cadastro").Select
    Range("C22").Select
    ActiveSheet.Paste
    


Application.EnableEvents = True


End Sub

Agora vou ter que fazer uma interface para escolher os rascunhos salvos, além de fazer um mecanismo que possa salvar e remover os rascunhos dos orçamentos. Devo criar outros tópicos para isso, pois são assuntos diferentes
Vlw pela ajuda !!

 
Postado : 21/08/2012 1:21 pm
(@felipesalomao)
Posts: 103
Estimable Member
Topic starter
 

Veja se atende ao que espera

Nem tinha visto a planilha, mais uma vez obrigado mesmo, vou otimizar a minha usando alguns trechos do seu código.

 
Postado : 21/08/2012 1:25 pm