Notifications
Clear all

Inserir linhas com inputbox

6 Posts
3 Usuários
0 Reactions
1,445 Visualizações
(@llkameoka)
Posts: 0
New Member
Topic starter
 

Boa tarde, eu tenho o seguinte código:

Sub Insere()
     
    Dim Rng As Long
     
    Application.DisplayAlerts = False
    On Error Resume Next
    Rng = InputBox("Digite o número de linhas para ser inseridas")
    On Error GoTo 0
    Application.DisplayAlerts = True
     
    If Rng = 0 Then
        MsgBox "você não especificou o intervalo!"
        Exit Sub
    Else
        Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(Rng, 0)).Select
        Selection.EntireRow.Insert
    End If
     
End Sub 

o que eu gostaria de fazer é o usuario seleciona uma celula, por exemplo B7 e as novas linhas devem ser inseridas abaixo e a coluna F possui uma formula que deverá ser copiada para as novas linhas.

 
Postado : 25/10/2016 6:45 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

o que eu gostaria de fazer é o usuario seleciona uma celula, por exemplo B7 e as novas linhas devem ser inseridas abaixo

O código já faz isso!!

Sub AleVBA_22351()
     
    Dim Rng As Long
     
    Application.DisplayAlerts = False
    On Error Resume Next
    Rng = InputBox("Digite o número de linhas.")
    On Error GoTo 0
    Application.DisplayAlerts = True
     
    If Rng = 0 Then
        MsgBox "Intervalo não especificado!"
        Exit Sub
    Else
        Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(Rng, 0)).Select
        Selection.EntireRow.Insert
    End If
'Tente isso
      With Sheets("Plan1")
        .Range("F2:F" & .Cells(.Rows.Count, "F").End(xlUp).Row).Formula = "=SuaFormualAqui"
    End With
End Sub

Att

 
Postado : 25/10/2016 8:10 am
(@llkameoka)
Posts: 0
New Member
Topic starter
 

Obrigada pela ajuda, ao rodar a macro da problema na hora da formula, as linhas são inseridas, mas não com a formula, da uma mensagem "Subscrito fora de intervalo"

 
Postado : 25/10/2016 12:03 pm
(@mprudencio)
Posts: 0
New Member
 

Não seria mais simples deixar um numero de celulas prontas para o usuario inserir dados e caso precise usar a alça de preenchimento para ampliar a formula.

Não vamos complicar o que é simples.

 
Postado : 25/10/2016 12:24 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Poste o código que usou, eu creio que a síntax da formula está incorreta!!

Att

 
Postado : 26/10/2016 8:37 am
(@llkameoka)
Posts: 0
New Member
Topic starter
 

Obrigada pelo retorno gente, já consegui resolver o problema, usei o seguinte código:

Sub InsertRowsAndFillFormulas(Optional vRows As Long = 0)

   Dim x As Long
   ActiveCell.EntireRow.Select
   If vRows = 0 Then
    vRows = Application.InputBox(prompt:= _
      "Digite o número de linhas que deseja adicionar", Title:="Add Rows", _
      Default:=1, Type:=1)
    If vRows = False Then Exit Sub
   End If

   
   Dim sht As Worksheet, shts() As String, i As Long
   ReDim shts(1 To Worksheets.Application.ActiveWorkbook. _
       Windows(1).SelectedSheets.Count)
   i = 0
   For Each sht In _
       Application.ActiveWorkbook.Windows(1).SelectedSheets
    Sheets(sht.Name).Select
    i = i + 1
    shts(i) = sht.Name

    x = Sheets(sht.Name).UsedRange.Rows.Count

    Selection.Resize(rowsize:=2).Rows(2).EntireRow. _
     Resize(rowsize:=vRows).Insert Shift:=xlDown

    Selection.AutoFill Selection.Resize( _
     rowsize:=vRows + 1), xlFillDefault

    On Error Resume Next
    Selection.Offset(1).Resize(vRows).EntireRow. _
     SpecialCells(xlConstants).ClearContents
   Next sht
   Worksheets(shts).Select
End Sub

fonte: http://dmcritchie.mvps.org/excel/insrtrow.htm

 
Postado : 26/10/2016 1:12 pm