Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Erro Formulario userform excluir e editar cadastro [RESOLVIDO]

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Elaine Carvalho
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Qui Mai 21, 2020 10:25 am

Erro Formulario userform excluir e editar cadastro [RESOLVIDO]

Mensagem por Elaine Carvalho »

Boa Tarde,
Trabalho no serviço publico, e fiz uma planilha seguindo tutorial no youtube, para cadastrar entra e saída de pacientes. O problema não estou conseguindo editar e excluir cadastro.

Com o comando editar apresenta o erro.
Erro em tempo de execução’1004’:
O método ‘Range’ do objeto’_Global’ falhou
With Range("Pacientes")

Com o comando excluir apresenta o erro.
Erro de compilação:
O argumento não é opcional
With Worksheets = Plan2.Range("C:C")

Segue em anexo planilha.
Desde de já agradeço pela ajuda.
Anexos
CADASTRO DE PACIENTE O2.rar
(117.61 KiB) Baixado 158 vezes
Editado pela última vez por Elaine Carvalho em Ter Jun 02, 2020 2:43 pm, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Erro Formulario userform excluir e editar cadastro

Mensagem por Reinaldo »

"...Com o comando editar apresenta o erro..."
Experimente:

Código: Selecionar todos

Private Sub cmdeditar_Click()
 '1º Verificar se o cadastro já existe
If TxtID.Text <> "" Then
    'Editar o cadastro
    Dim linha As Range
    Dim nm As Integer
    With Range("Dados")
        Set linha = .Find(Me.TxtNome.Value)
        .Cells(linha.Row - 1, 1) = Me.TxtID.Value
        .Cells(linha.Row - 1, 3) = Me.TxtNome.Value
        .Cells(linha.Row - 1, 2) = CDate(Me.TxtEntrada.Text)
        .Cells(linha.Row - 1, 4) = CDate(Me.TxtSaida.Text)
        .Cells(linha.Row - 1, 5) = Me.TxtMotivo.Value
        .Cells(linha.Row - 1, 6) = Me.TxtObservacoes.Value
           
        Columns.AutoFit
    
        MsgBox "Alteração foi Efetuada com sucesso !!!", vbInformation, "Alteração de Cadastro de Pacientes"
    End With
End If
End Sub
"...Com o comando excluir apresenta o erro..."
Experimente:

Código: Selecionar todos

Private Sub cmdexcluir_Click()
'Declarar a variável Resp para receber uma resposta
Dim Resp As Integer
'Verificar se o texto foi digitado na caixa de pesquisa
If TxtNome.Text = "" Then
     MsgBox "Digite o Nome Do Paciente"
     TxtNome.SetFocus
     Exit Sub
End If
'Fazer a busca do registro digitado pelo usuário
With Plan2.Range("C:C")
    Set c = .Find(TxtNome.Value, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        Resp = MsgBox("Tem certeza que deseja excluir o registro?" & "De Numero de Registro:  " & TxtID.Value, vbYesNo, "Confirmação")
        
        If Resp = vbYes Then
            Rows(c.Row).Select
             Selection.EntireRow.Delete Shift:=xlUp
             'Limpar as caixas de texto
                TxtID = Empty
                TxtNome = Empty
                TxtEntrada = Empty
                TxtSaida = Empty
                TxtMotivo = Empty
                TxtObservacoes = Empty
                
             'Colocar o foco na caixa de texto
                TxtNome.SetFocus
        Else
             MsgBox "O paciente não será excluído!", vbInformation, "AVISO"
        End If
    Else
         MsgBox " Paciente não encontrado!"
    End If
End With
Atualiza
End Sub


Elaine Carvalho
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Qui Mai 21, 2020 10:25 am

Re: Erro Formulario userform excluir e editar cadastro

Mensagem por Elaine Carvalho »

Bom dia,
coloquei os codigos que você passou, mas ainda apresenta erro no comando editar.

"A variável do objeto ou a variável do bloco 'With" não foi definida"

E no comando excluir, esta excluindo a linha na Plan1 (Home) e não na Plan2 (Cad_Pacientes) onde estão os dados do Pacientes.
Reinaldo escreveu: Sáb Mai 30, 2020 1:01 pm "...Com o comando editar apresenta o erro..."
Experimente:

Código: Selecionar todos

Private Sub cmdeditar_Click()
 '1º Verificar se o cadastro já existe
If TxtID.Text <> "" Then
    'Editar o cadastro
    Dim linha As Range
    Dim nm As Integer
    With Range("Dados")
        Set linha = .Find(Me.TxtNome.Value)
        .Cells(linha.Row - 1, 1) = Me.TxtID.Value
        .Cells(linha.Row - 1, 3) = Me.TxtNome.Value
        .Cells(linha.Row - 1, 2) = CDate(Me.TxtEntrada.Text)
        .Cells(linha.Row - 1, 4) = CDate(Me.TxtSaida.Text)
        .Cells(linha.Row - 1, 5) = Me.TxtMotivo.Value
        .Cells(linha.Row - 1, 6) = Me.TxtObservacoes.Value
           
        Columns.AutoFit
    
        MsgBox "Alteração foi Efetuada com sucesso !!!", vbInformation, "Alteração de Cadastro de Pacientes"
    End With
End If
End Sub
"...Com o comando excluir apresenta o erro..."
Experimente:

Código: Selecionar todos

Private Sub cmdexcluir_Click()
'Declarar a variável Resp para receber uma resposta
Dim Resp As Integer
'Verificar se o texto foi digitado na caixa de pesquisa
If TxtNome.Text = "" Then
     MsgBox "Digite o Nome Do Paciente"
     TxtNome.SetFocus
     Exit Sub
End If
'Fazer a busca do registro digitado pelo usuário
With Plan2.Range("C:C")
    Set c = .Find(TxtNome.Value, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        Resp = MsgBox("Tem certeza que deseja excluir o registro?" & "De Numero de Registro:  " & TxtID.Value, vbYesNo, "Confirmação")
        
        If Resp = vbYes Then
            Rows(c.Row).Select
             Selection.EntireRow.Delete Shift:=xlUp
             'Limpar as caixas de texto
                TxtID = Empty
                TxtNome = Empty
                TxtEntrada = Empty
                TxtSaida = Empty
                TxtMotivo = Empty
                TxtObservacoes = Empty
                
             'Colocar o foco na caixa de texto
                TxtNome.SetFocus
        Else
             MsgBox "O paciente não será excluído!", vbInformation, "AVISO"
        End If
    Else
         MsgBox " Paciente não encontrado!"
    End If
End With
Atualiza
End Sub


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Erro Formulario userform excluir e editar cadastro

Mensagem por Reinaldo »

Verifique
Anexos
CADASTRO DE PACIENTE O2.zip
(122.02 KiB) Baixado 154 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Elaine Carvalho
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Qui Mai 21, 2020 10:25 am

Re: Erro Formulario userform excluir e editar cadastro

Mensagem por Elaine Carvalho »

Reinaldo,
No comando excluir deu certo, porem editar ainda esta apresentando o erro.
Reinaldo escreveu: Seg Jun 01, 2020 10:54 amVerifique


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Erro Formulario userform excluir e editar cadastro

Mensagem por Reinaldo »

Muito estranho :o .
Em seu modelo/exemplo (que anexei no post anterior) está ok, sem erro.
Qual o passo a passo que retorna erro?
Está utilizando o mesmo arquivo exemplo/modelo anexado?


Elaine Carvalho
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Qui Mai 21, 2020 10:25 am

Re: Erro Formulario userform excluir e editar cadastro

Mensagem por Elaine Carvalho »

Reinaldo escreveu: Seg Jun 01, 2020 6:57 pm Muito estranho :o .
Em seu modelo/exemplo (que anexei no post anterior) está ok, sem erro.
Qual o passo a passo que retorna erro?
Está utilizando o mesmo arquivo exemplo/modelo anexado?
Sim usei o que você anexou.
Passo a Passo.
Editei o nome Exemplo numero cinco, retirando a letra o da palavra cinco, ele editou.
Porem quando eu tentei novamente editar colocando novamente a letra o, apresentou o erro.
Tirei prints, segue em anexo.
Anexos
Editando Exemplo.rar
(158.92 KiB) Baixado 148 vezes


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Erro Formulario userform excluir e editar cadastro

Mensagem por Reinaldo »

Bem, temos aqui um erro de conceito, não um erro de rotina/programa.
A determinação/procura de um item para edição, conforme seu modelo/exemplo inicial; é pelo nome do paciente, alterando esse nome a procura/localização retorna vazia; pois o nome alterado não é encontrado no Banco.
Sendo esse campo for passível de alteração; é preciso rever a estrutura de seu projeto no tocante a determinação do item/linha a ser modificado


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Erro Formulario userform excluir e editar cadastro

Mensagem por Reinaldo »

Alterei a rotina, para possibilitar alteração do Nome, veja se atende
Anexos
CADASTRO DE PACIENTE O2.zip
(125.86 KiB) Baixado 159 vezes


Elaine Carvalho
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Qui Mai 21, 2020 10:25 am

Re: Erro Formulario userform excluir e editar cadastro [RESOLVIDO]

Mensagem por Elaine Carvalho »

Reinaldo escreveu: Ter Jun 02, 2020 10:19 am Bem, temos aqui um erro de conceito, não um erro de rotina/programa.
A determinação/procura de um item para edição, conforme seu modelo/exemplo inicial; é pelo nome do paciente, alterando esse nome a procura/localização retorna vazia; pois o nome alterado não é encontrado no Banco.
Sendo esse campo for passível de alteração; é preciso rever a estrutura de seu projeto no tocante a determinação do item/linha a ser modificado
E realmente e um erro de conceito, pois como eu segui tutorial de youtube, e no modelos apresentado a pesquisa e feita por ID (código,numero de nf etc.) que não se edita.
Reinaldo escreveu: Ter Jun 02, 2020 12:57 pm Alterei a rotina, para possibilitar alteração do Nome, veja se atende
Reinaldo,
Atende sim,
Muito obrigada, por corrigir e explicar onde estava o erro.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder