MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Alteração de dados via VBA no meu formulario

    avatar
    CalixtoR_
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 20/09/2023

    [Resolvido]Alteração de dados via VBA no meu formulario Empty [Resolvido]Alteração de dados via VBA no meu formulario

    Mensagem  CalixtoR_ Dom Nov 19, 2023 10:58 am

    Olá, sou novo no fórum e se houver alguma coisa errada no tópico peso compreensão.

    Estou criando um formulário, e gostaria de alterar os dados caso necessário, exemplo:
    Tenho uma ListBox onde carrego os dados preenchidos na minha TabelaDados, nesse formulário consigo Lançar, Excluir etc.
    Mas estou com problema na hora que tento editar, ou alterar os dados, as minhas primeiras duas colunas são dos meses, elas alteram sem problemas, ja o resto não modifica.

    Segue o código abaixo  


    Private Sub BTAlterarCadastro_Click()


       Planilha1.Unprotect

       Dim valor As Long
       Dim fila As Range
       Dim linha As Long
       
       If Me.TextBoxNFe.Value = "" Then
           MsgBox "Selecione um Cadastro para Alterar !"
           Exit Sub
       End If
       
       valor = Me.TextBoxNFe.Value
       If MsgBox("Deseja Alterar o Cadastro número " & valor & "?", vbYesNo) = vbNo Then
           Exit Sub
       End If
       
       Set fila = Sheets("TabelaDados").Range("F:F").Find(valor, lookat:=xlWhole)
       If Not fila Is Nothing Then
           linha = fila.Row

    With Sheets("TabelaDados")
       ' Atualiza as colunas C a D
       .Range("C" & linha & "Very Happy" & linha).Value = Array(CDate(Format(Me.TextBoxDataEmissão.Text, "dd/mm/yyyy")), CDate(Format(Me.TextBoxDataCarregamento.Text, "dd/mm/yyyy")))
           ' Atualiza as colunas G a R
       .Range("G" & linha & ":R" & linha).Value = Array(Me.TextBoxCliente.Text, Me.TextBoxProduto.Text, Me.ComboBoxOperação.Text, Me.TextBoxPesso.Value, Me.TextBoxMotorista.Text, Me.TextBoxPlaca.Text, Me.TextBoxLocalSaida.Text, Me.TextBoxDestino.Text, Me.ComboBoxCombustivel.Text, Me.TextBoxTotalAbastecido.Value, Me.TextBoxKMRodado.Value, Me.TextBoxValorCombustivel.Value)
       'Altera as colunas V a Y
       .Range("V" & linha & ":Y" & linha).Value = Array(Me.TextBoxValorFrete.Value, Me.TextBoxDiaria.Value, Me.TextBoxGastosVariados.Value, Me.TextBoxPedágio.Value)
       End With

           MsgBox "Cadastro Alterado !"
       Else
           MsgBox "Cadastro não encontrado !"
       End If
       
       Planilha1.Protect
    End Sub



    Ja alterei as formatações da maneira correta e mesmo assim não funciona a formula a partir da segunda .Range("G" & linha & ":R" & linha)


    Se puderem ajudar agradeço!


    Última edição por CalixtoR_ em Qui Nov 23, 2023 1:04 pm, editado 1 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8496
    Registrado : 05/11/2009

    [Resolvido]Alteração de dados via VBA no meu formulario Empty Re: [Resolvido]Alteração de dados via VBA no meu formulario

    Mensagem  Alexandre Neves Dom Nov 19, 2023 3:21 pm

    Boa tarde e bem-vindo ao fórum
    Por se tratar de assunto de Excel, sendo o fórum de Access, movi-lhe a dúvida para esta sala
    Sobre a sua dúvida, tente desta forma:
    Código:
    With Sheets("TabelaDados")
        'Actualiza coluna C
        .Range("C" & Linha).Value = CDate(Format(Me.TextBoxDataEmissão.Text, "dd/mm/yyyy"))
        'Actualiza coluna D
        .Range("D" & Linha).Value = CDate(Format(Me.TextBoxDataCarregamento.Text, "dd/mm/yyyy"))
        'Actualiza colunas G
        .Range("G" & Linha).Value = Me.TextBoxCliente.Text
        'Actualiza coluna H
        .Range("H" & Linha).Value = Me.TextBoxProduto.Text
        'Actualiza coluna I
        .Range("I" & Linha).Value = Me.ComboBoxOperação.Text
        'Actualiza coluna J
        .Range("J" & Linha).Value = Me.TextBoxPesso.Value
        'Actualiza coluna K
        .Range("K" & Linha).Value = Me.TextBoxMotorista.Text
        'Actualiza coluna L
        .Range("L" & Linha).Value = Me.TextBoxPlaca.Text
        'Actualiza coluna M
        .Range("M" & Linha).Value = Me.TextBoxLocalSaida.Text
        'Actualiza coluna N
        .Range("N" & Linha).Value = Me.TextBoxDestino.Text
        'Actualiza coluna O
        .Range("O" & Linha).Value = Me.ComboBoxCombustivel.Text
        'Actualiza coluna P
        .Range("P" & Linha).Value = Me.TextBoxTotalAbastecido.Value
        'Actualiza coluna Q
        .Range("Q" & Linha).Value = Me.TextBoxKMRodado.Value
        'Actualiza colunas R
        .Range("R" & Linha).Value = Me.TextBoxValorCombustivel.Value
        'Altera coluna V
        .Range("V" & Linha).Value = Me.TextBoxValorFrete.Value
        'Altera coluna W
        .Range("W" & Linha).Value = Me.TextBoxDiaria.Value
        'Altera coluna X
        .Range("X" & Linha).Value = Me.TextBoxGastosVariados.Value
        'Altera coluna Y
        .Range("Y" & Linha).Value = Me.TextBoxPedágio.Value
    End With


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    CalixtoR_
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 20/09/2023

    [Resolvido]Alteração de dados via VBA no meu formulario Empty Re: [Resolvido]Alteração de dados via VBA no meu formulario

    Mensagem  CalixtoR_ Dom Nov 19, 2023 4:01 pm

    Tentei fazer do jeito que você comentou acima, mas ele continua alterando somente a primeira colunas, anteriormente eu tinha conseguido resolver usando o método Arrey sem definir uma .range, mas o problema e que o código limpava as linhas onde eram pra ser puladas.

    Enfim, vou deixar o arquivo embaixo, se conseguir dar uma olhada agradeço, fora isso e meu primeiro formulário que criei, sou meio lerdo ainda em questão dos códigos.



    Atualizações:

    Vou estar apagando a planilha aqui por conta do Excel estar barrando na hora que entro, mas fora isso ja consegui resolver o problema de outra maneira, obrigado pela ajuda.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8496
    Registrado : 05/11/2009

    [Resolvido]Alteração de dados via VBA no meu formulario Empty Re: [Resolvido]Alteração de dados via VBA no meu formulario

    Mensagem  Alexandre Neves Qua Nov 22, 2023 4:20 pm

    Boa noite
    De forma a ajudar outros colegas com a mesma dúvida, explique como resolveu.
    Estando a dúvida resolvida, deve marcar o botão "Resolvido" que se encontra na zona inferior direita do fórum


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    CalixtoR_
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 20/09/2023

    [Resolvido]Alteração de dados via VBA no meu formulario Empty Re: [Resolvido]Alteração de dados via VBA no meu formulario

    Mensagem  CalixtoR_ Qua Nov 22, 2023 7:35 pm

    A certo, como estava aprendendo fui seguindo uma playlist no youtube de como fazer um formulario, o problema e que as funções que ele escrevia no vba me retornavam muitos problemas.

    No botão alterar o problema era que ele apresentava o b.o de não alterar os dados diretamente, de vez em quando ele alterava quando a listbox era deselecionar .
    Mas so fui notar isso ontem quando tentei refazer a função que tinha visto no youtube (Nome do canal: Reyno Compartilhando Conhecimentos).

    Função logo abaixo serve para alterar os dados...

    Dim resposta As VbMsgBoxResult
    Dim valor As Long
    Dim fila As Object
    Dim linha As Long

    If Me.TextBoxNFe.Value = "" Then
    MsgBox "Selecione um Cadastro para Alterar"
    Exit Sub
    End If

    valor = Me.TextBoxNFe.Value
    resposta = MsgBox("Deseja alterar o cadastro numero " & valor & "?", vbYesNo)

    Planilha1.Unprotect

    If resposta = vbNo Then
    Exit Sub

    Else

    ' A solução fica aqui, onde o comando desmarca o item selecionado da ListBox logo depois que eu clico.

    For i = 0 To Lista.ListCount - 1
    If Lista.Selected(i) Then
    Lista.Selected(i) = False
    End If
    Next i

    '

    Set fila = Sheets("TabelaDados").Range("F:F").Find(valor, lookat:=xlWhole)
    linha = fila.Row

    Range("C" & linha).Value = CDate(Format(Me.TextBoxDataEmissão, "dd/mm/yyyy"))
    Range("D" & linha).Value = CDate(Format(Me.TextBoxDataCarregamento, "dd/mm/yyyy"))
    Segue código com as outras textbox.....



    Qualquer duvida sobre o resto do código chama.

    felucas gosta desta mensagem


    Conteúdo patrocinado


    [Resolvido]Alteração de dados via VBA no meu formulario Empty Re: [Resolvido]Alteração de dados via VBA no meu formulario

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Qui Nov 07, 2024 1:01 pm