Notifications
Clear all

apagar intervalo de linhas

11 Posts
2 Usuários
0 Reactions
3,303 Visualizações
(@mdorey)
Posts: 42
Trusted Member
Topic starter
 

Boa noite,
Sou novo por aqui, o que me tras ca é uma grande duvida que tou farto de pesquisar na net e infelizmente nao consigo encontrar a resposta :(

Preciso de uma MacroVBA que me apague um intervalo de linhas sendo que comeca na linha 7(SEMPRE) e a ultimo é sempre incerta, pois trata-se de uma base de dados e quando é adicionado uma nova resposta é inserida uma nova linha.

A ultima linha é sempre incerta e impossivel de meter um determinado numero de linhas porque tem uma linha com formulas para calcular a media das respostas inseridas.

Resumindo, o code seleciona (ou nao) as linhas desde a 7(sempre) até uma antes da que tem formulas nunca sabendo ao certo quantas linhas sao...

Ha quem me possa ajudar por favor????

Desde ja obrigado

 
Postado : 04/06/2012 9:06 pm
(@mdorey)
Posts: 42
Trusted Member
Topic starter
 

seria algo assim

    Sheets("Planilha1").Range("A1:A200").Select
    Selection.EntireRow.Delete

Mas o problema é que a linha A200 nunca é sempre a ultima :(

 
Postado : 04/06/2012 9:09 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Esse exemplo com adaptação pode te ajudar....

Option Explicit
 
Sub Exempo_AleVBA()
    Dim NumRows, NumCols, I, J As Double
     
    NumRows = ActiveCell.SpecialCells(xlLastCell).Row
    NumCols = ActiveCell.SpecialCells(xlLastCell).Column
     
    For I = 1 To NumRows
        For J = 1 To NumCols
            If Left(Cells(I, J).Formula, 1) <> "=" Then
                Cells(I, J).ClearContents
            End If
        Next J
    Next I
End Sub

Tente também

Sub Deletar_AleVBA()
    On Error Resume Next
    Columns("A").SpecialCells(xlCellTypeConstants).EntireRow.Delete
    On Error GoTo 0
End Sub
 
Postado : 05/06/2012 5:56 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Lembre se também de usar um poderoso e simples recurso (ir para especial ), use a tecla F5

Veja mais sobre em:
http://jldexcelsp.blogspot.com.br/2010/ ... al-de.html
http://www.expresstraining.com.br/index ... cle&id=153

 
Postado : 05/06/2012 6:25 am
(@mdorey)
Posts: 42
Trusted Member
Topic starter
 

Bom dia!!

Esse exemplo com adaptação pode te ajudar....

Option Explicit
 
Sub Exempo_AleVBA()
    Dim NumRows, NumCols, I, J As Double
     
    NumRows = ActiveCell.SpecialCells(xlLastCell).Row
    NumCols = ActiveCell.SpecialCells(xlLastCell).Column
     
    For I = 1 To NumRows
        For J = 1 To NumCols
            If Left(Cells(I, J).Formula, 1) <> "=" Then
                Cells(I, J).ClearContents
            End If
        Next J
    Next I
End Sub

Tente também

Sub Deletar_AleVBA()
    On Error Resume Next
    Columns("A").SpecialCells(xlCellTypeConstants).EntireRow.Delete
    On Error GoTo 0
End Sub

Boa noite alexandrevba,

Infelizmente nem um nem o outro code resolvem a situaçao :(

o primeiro da um erro que é
"Não é possivel alterar uma parte de uma celula unida."

E o segundo só apaga a linha que nao é suposto apagar que é a que tem as formulas :(

Será que me podem ajudar com este problema?? desde ja obrigado pela atençao

 
Postado : 05/06/2012 5:42 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Sem um arquivo modelo compactado fica difícil!!!!!!!!

Afinal a falta de detalhes, torna árduo o retorno esperado, pois não foi mencionado células mescladas!!!

Att

 
Postado : 05/06/2012 5:43 pm
(@mdorey)
Posts: 42
Trusted Member
Topic starter
 

vou tratar ja disso e posto ja aqui

Aguarde 2m por favor

 
Postado : 05/06/2012 5:46 pm
(@mdorey)
Posts: 42
Trusted Member
Topic starter
 

Aqui esta...

Ja tem inserido umas quantas respostas (so para o Exemplo)

O que pretendo e que apague todas as linhas inseridas desde a linha 7 ate uma antes da que diz Média que essa vai ser sempre movida para baixo sempre que se insere novas respostas.

Alguma duvida (em nao entender o que tou pedindo) por favor diga

Obrigado pela atencao :)

 
Postado : 05/06/2012 5:50 pm
(@mdorey)
Posts: 42
Trusted Member
Topic starter
 

alexandrevba Obrigado por todo o seu tempo tenha sido pouco ou muito... muito obrigado pela atencao pois ja consegui em outro forum o code para deletar todas as linhas ate a linha que tem as formulas :D

Muito obrigado na mesma :D

 
Postado : 05/06/2012 6:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Ótimo que conseguiu resolver, então marque sua postagem como resolvido e poste a solução pois outros também poderam precisar, abraços e at+++ ;)

Marcar Tópico como Resolvido e Agradecimento
viewtopic.php?f=7&t=3784

Att

 
Postado : 05/06/2012 6:24 pm
(@mdorey)
Posts: 42
Trusted Member
Topic starter
 

Boa noite!!

Ótimo que conseguiu resolver, então marque sua postagem como resolvido e poste a solução pois outros também poderam precisar, abraços e at+++ ;)

Marcar Tópico como Resolvido e Agradecimento
viewtopic.php?f=7&t=3784

Att

Fica entao aqui o Code para que quem quiser ou precisar :D

Private Sub CommandButton1_Click()
 ActiveSheet.Unprotect 
    Dim l As Long
   
    For l = 7 To RowLast(Columns("A"))
        If Cells(l, "B").HasFormula Then
            Rows(7).Resize(l - 7).Delete
            Exit For
        End If
    Next l
ActiveSheet.Protect
End Sub
Function RowLast(rng As Range) As Long
    With rng
        On Error Resume Next
        RowLast = .Find(What:="*" _
          , After:=.Cells(1) _
          , SearchDirection:=xlPrevious _
          , SearchOrder:=xlByColumns _
          , LookIn:=xlFormulas).Row
        If RowLast = 0 Then RowLast = rng.Cells(1).Row
    End With
End Function

Code by benzadeus

Obrigado benzadeus

 
Postado : 05/06/2012 6:29 pm