Ir para conteúdo
Fórum Script Brasil
  • 0

Comando que direcione excluir linha em outra planilha


Albino Soares

Pergunta

Boa tarde senhores,
Acredito que falta poucos paara eu concluir meu projeto VBA.
Preciso de um comando que direcione o botão excluir a linha para plan(6) desejada, no momento só consigo excluir a linha estando na mesma plan(6). Preciso estar na Plan(3) e excluir uma terminada linha na Plan(6). Esse é o comando que tenho:

Private Sub BtExcluirAud_Click()
On Erro GoTo Erro

Dim confirmar As String
confirmar = MsgBox("Tem certeza que deseja EXCLUIR o Cliente: " & Me.Txt_Cliente_Aud & "?", vbYesNo, "Excluir!")
If confirmar = vbNo Then
MsgBox "Exclusão do Cliente: " & Me.Txt_Cliente_Aud & " CANCELADO!", vbInformation, "Exclusao cancelada!"
Unload Audiência
Exit Sub
End If

valor_processo = Txt_Processo_Aud.Value
ult_linha = Range("A30000").End(xlUp).Row
For linha = 2 To ult_linha
If Cells(linha, 18).Value = valor_processo Then
Range(Cells(linha, 1), Cells(linha, 42)).Delete Shift:=xlUp
linha = linha - 1
End If
Next

ActiveWorkbook.Save
MsgBox "Cadastro do cliente " & Me.Txt_Cliente_Aud & " foi EXCLUIDO com sucesso!", vbInformation, "Excluído!"

Unload Audiência
Exit Sub
Erro:
MsgBox "Erro!", vbCritical, "ERRO"
End Sub

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde. 
Para excluir uma linha em uma planilha específica, você precisa referenciar a planilha na qual a linha está localizada usando a propriedade "Worksheets". Você pode fazer isso modificando a linha onde você define a variável "ult_linha" para:

ult_linha = Worksheets("Plan6").cells(rowns.count, "A").End(xlUp).Row

Isso irá definir "ult_linha" como o número da última linha na Plan6 que contém dados na coluna A.

Em seguida, dentro do loop "For", você precisa modificar as referências de célula para incluir a Plan6. Você pode fazer isso adicionando "Worksheets("Plan6")." antes das referências de célula. Por exemplo:

If Worksheets("Plan6").Cells(linha, 18).Value = valor_processo Then
    Worksheets("Plan6").Range(Worksheets("Plan6").Cells(linha, 1), Worksheets("Plan6").Cells(linha, 42)).Delete Shift:=xlUp
    linha = linha - 1
End If

Isso irá excluir a linha correspondente ao processo "valor_processo" na Plan6.

Com o tempo se sua função ficar mais lenta troque o for pelo find

Link para o comentário
Compartilhar em outros sites

  • 0

Eliminei o for e inclui o find para localizar o item a ser excluido, pois com muitos dados o com o for, a macro pode ficar lenta.

Segue sugestão: 

Private Sub BtExcluirAud_Click()
    Dim rng         As Range
    Dim confirmar   As String

    On Erro GoTo Erro


    Set rng = Plan6.Columns("R").Find(Txt_Processo_Aud.Value, LookIn:=xlValues, Lookat:=xlWhole)

    If Not rng Is Nothing Then

        confirmar = MsgBox("Tem certeza que deseja EXCLUIR o Cliente: " & Me.Txt_Cliente_Aud & "?", vbYesNo, "Excluir!")

        If confirmar = vbNo Then
            MsgBox "Exclusão do Cliente: " & Me.Txt_Cliente_Aud & " CANCELADO!", vbInformation, "Exclusao cancelada!"
            Exit Sub
        Else
            Plan6.Range(Cells(rng.Row, 1), Cells(rng.Row, 42)).Delete Shift:=xlUp
        End If

        ActiveWorkbook.Save
        MsgBox "Cadastro do cliente " & Me.Txt_Cliente_Aud & " foi EXCLUIDO com sucesso!", vbInformation, "Excluído!"
     
    Else
        MsgBox "Processo " & Me.Txt_Cliente_Aud & "", vbCritical, "Aviso "
    End If

    Unload Audiência
    Exit Sub
Erro:
    MsgBox "Erro!", vbCritical, "ERRO"

End Sub

 

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe Alyson, devido aos custos estou aprendendo VBA via Youtube, por isso a minha dificuldade. tá dando erro na execução nesse comando.       

        valor_processo = Txt_Processo_Aud.Value
        ult_linha = Worksheets("Plan6").Cells(rowns.Count, "A").End(xlUp).Row
        ult_linha = Range("A30000").End(xlUp).Row
        For linha = 2 To ult_linha
            If Worksheets("Plan6").Cells(linha, 18).Value = valor_processo Then
            Worksheets("Plan6").Range(Worksheets("Plan6").Cells(linha, 1), Worksheets("Plan6").Cells(linha, 42)).Delete Shift:=xlUp
            linha = linha - 1
            End If
            If Cells(linha, 18).Value = valor_processo Then
            Range(Cells(linha, 1), Cells(linha, 42)).Delete Shift:=xlUp
            linha = linha - 1
            End If
          
        ActiveWorkbook.Save
        MsgBox "Cadastro do cliente " & Me.Txt_Cliente_Aud & " foi EXCLUIDO com sucesso!", vbInformation, "Excluído!"

Unload Audiência
Exit Sub
Next
Erro:
MsgBox "Erro!", vbCritical, "ERRO"
End Sub
 

Valeu pelo Basole pelo seu retorno também, mas a excução também parou no:

Plan6.Range(Cells(rng.Row, 1), Cells(rng.Row, 42)).Delete Shift:=xlUp

Gostaria muito se pudesse enviar o arquivo, ficaria muito mais fácil de você posicionarem.  albinito10@gmail.com

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...