Erro ao salvar ediç...
 
Notifications
Clear all

Erro ao salvar edição

2 Posts
2 Usuários
0 Reactions
785 Visualizações
selmo
(@selmo)
Posts: 236
Estimable Member
Topic starter
 

Bom dia galera!!
O problema é o seguinte, planilha nova e código antigo, utilizo um código para carregar dados da planilha em um form para edição, e um código para salvar as alterações, o problema é que ele salva os dados alterados só depois da celula c2, antes disso as informações não são alteradas :/

Set DADOS = Sheets("CONTAS")
    Dim i, UltimaLinha As Long
    UltimaLinha = DADOS.Cells(Cells.Rows.Count, 3).End(xlUp).Row
    If UltimaLinha < 1 Then UltimaLinha = 1
    For i = 1 To UltimaLinha
        If DADOS.Range("C" & i).Value = TXTSITE.Text Then
            DADOS.Range("C" & i).Value = SITE.Text
            DADOS.Range("D" & i).Value = TXTUSUARIO.Text
            DADOS.Range("E" & i).Value = TXTSENHA.Text
            DADOS.Range("F" & i).Value = TXTLINK.Text
            DADOS.Range("G" & i).Value = TXTOBSERVAÇOES.Text
            MsgBox "Registro Alterado com Sucesso ", vbDefaultButton1, "EDIÇÃO DE DADOS"
          
            Exit For
        End If
    Next

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original."
Albert Einstein

 
Postado : 13/10/2014 7:37 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Selmo, analise e reveja a lógica em sua rotina:

Você tem:
Verifica a Última Linha preenchida na Coluna 3 (C)
UltimaLinha = DADOS.Cells(Cells.Rows.Count, 3).End(xlUp).Row

Aqui a lógica está sem lógica :
Dificilmente teremos a UltimaLinha MENOR que 1
If UltimaLinha < 1 Then UltimaLinha = 1

Quanto a alteração temos :
A Variável "i" Inicia sempre em "1" por não termos nenhuma definição que diga ao contrário, então se UltimaLinha for igual a "9", será executado :
De "1" para "9"
For i = 1 To UltimaLinha
Efetuado a Condição :
Se Valor de "C1" = Valor do = TXTSITE.Text
If DADOS.Range("C" & i).Value = TXTSITE.Text Then

Altera-se onde for satisfeito a Condição, sempre Iniciando em "1", e logo em seguida :
Saímos do Loop
Exit For

Ou seja, a rotina realiza a alteração conforme as instruções, mesmo que o Cabeçalho (Rotulo) de "C1" atenda a condição.

Favor rever sua solicitação.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/10/2014 6:11 am