Página 1 de 1

Comando que direcione excluir linha em outra planilha

Enviado: 18 Mar 2023 às 16:05
por Albino10
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

Re: Comando que direcione excluir linha em outra planilha

Enviado: 21 Mar 2023 às 08:19
por Foxtri
Bom dia.
Talvez assim ??
If Cells(linha, 18).Value = valor_processo Then
Plan(6).Cells(linha, 1).EntireRow.Delete
'Range(Cells(linha, 1), Cells(linha, 42)).Delete Shift:=xlUp
'linha = linha - 1
End If

Até
Foxtri

Re: Comando que direcione excluir linha em outra planilha

Enviado: 22 Mar 2023 às 11:52
por Albino10
obgrigado Foxtri pelo seu retorno, aplique sua sugestão e apareceu a informação:
Erro de compilação: (em Plan)
'Sub' ou 'Function' não definida.

Re: Comando que direcione excluir linha em outra planilha

Enviado: 22 Mar 2023 às 11:59
por Foxtri
Boa tarde.
Poderia enviar a planilha ???
Até
Foxtri

Re: Comando que direcione excluir linha em outra planilha

Enviado: 25 Mar 2023 às 16:02
por Albino10
Puxa era isso que eu ia sugerir, mas só lembrei depois que enviei. segue o anexo.
Desculpe a demora, tive que formatar o meu PC.

Tentando por aqui eu adicionei essa variantes (se é esse o nome) e funcionou, só o visor no monitor vai pra Plan6 e desejo que permaneça na Plan3. Acho que ficou mais fácil pra você me ajudar né?
Dim confirmar As String
Plan6.Activate
Dim plan As String
plan = Plan6.Name

Re: Comando que direcione excluir linha em outra planilha

Enviado: 28 Mar 2023 às 13:42
por Foxtri
Boa tarde.
Veja se era isso.

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 = Sheets("BDados").Range("A30000").End(xlUp).Row
For linha = 2 To ult_linha
If Sheets("BDados").Cells(linha, 18).Value = valor_processo Then
Sheets("BDados").Cells(linha, 1).EntireRow.Delete
End If
Next

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

'LIMPAR AUTOMATICAMENTE AS INFORMAÇÕES NO CADASTRO
Txt_Data_Aud.Text = ""
Txt_Hora_Aud.Text = ""
Cbo_Status_Aud.Text = ""
Txt_Processo_Aud = ""
Cbo_Processo_Aud = ""
Cbo_Modalidade_Aud.Text = ""
Cbo_Julgador_Aud.Text = ""
Txt_Cliente_Aud.Text = ""
Txt_Réu_Aud.Text = ""
Txt_Celular1_Aud.Text = ""
Txt_Obs_Aud.Text = ""

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

Até
Foxtri

Re: Comando que direcione excluir linha em outra planilha

Enviado: 28 Mar 2023 às 14:04
por osvaldomp
1. acrescente a declaração da variável p ~~~> Dim confirmar As String, p As Range
________________________________________________________________________________________________________
2. substitua o trecho abaixo
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

por este abaixo
Set p = Sheets("BDados").[R:R].Find(Txt_Processo_Aud.Value)
If Not p Is Nothing Then Sheets("BDados").Rows(p.Row).Delete
________________________________________________________________________________________________________

3. bônus: o seu código descarrega o Form (Unload Audiência) após excluir a linha que contém o Processo selecionado, e essa operação de descarregar já limpa os campos do Form, então não desperdice energia ao limpar o Form duas vezes, por isso o trecho abaixo que limpa os campos do Form antes de descarregá-lo pode ser embrulhado para presente.

'LIMPAR AUTOMATICAMENTE AS INFORMAÇÕES NO CADASTRO
Txt_Data_Aud.Text = ""
Txt_Hora_Aud.Text = ""
Cbo_Status_Aud.Text = ""
Txt_Processo_Aud = ""
Cbo_Processo_Aud = ""
Cbo_Modalidade_Aud.Text = ""
Cbo_Julgador_Aud.Text = ""
Txt_Cliente_Aud.Text = ""
Txt_Réu_Aud.Text = ""
Txt_Celular1_Aud.Text = ""
Txt_Obs_Aud.Text = ""