Notifications
Clear all

Botão Editar - Problemas

7 Posts
2 Usuários
0 Reactions
1,559 Visualizações
(@ueleodoro)
Posts: 133
Estimable Member
Topic starter
 

Bom Dia Pessoal,

Pessoal preciso de uma ajudinha com um script para editar dados. Não estou entendendo o motivo desse erro uma vez que utilizo o mesmo códigos para outras telas.

Esta dando ESTOURO: Erro em tempo de execução '6'
Pesquisei: Essa mensagem de erro aparece quando o cálculo matemático envolve números ou variáveis de um tipo de dados, como número inteiro, e atribuir o resultado do cálculo a uma variável de um tipo de dados diferentes, como Double ou Long, mesmo se o resultado do cálculo está dentro do intervalo do tipo de dados para a variável resultante.

Veja onde esta em negrito, sublinhado e com smilies, la esta o erro.
Resolvi tornar o Dim i As Byte em Dim i As Long para tornar igual. Mas ai ocorre outro erro. Ele adiciona na linha de baixo da que deve ser editado os dados da linha a ser alterada.

O que será?
Caso tiverem algum outro script para editar dados, também ajuda.

Private Sub cmdeditar_Click()
Sheets("Formação de Preço e Catalogação").Select
    ' mensagem solicitando autorização
    If MsgBox("Tem certeza que deseja editar este contato?", vbYesNo, "") = vbNo Then
        Exit Sub
        Else
' desabilita atualização da tela
    Application.ScreenUpdating = True
' abre o filtro da coluna a
    ActiveSheet.Range("$a:$a").AutoFilter Field:=1
' mostra todas as linhas ocultas
    Cells.EntireRow.Hidden = False
' procura o nome e escreve os dados na planilha
    Dim Lin As Long
    Dim i As Byte
    
    
   [color=#000000] For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row[/color]
        If Cells(i, 1) = Me.txtcodref Then
        Lin = Cells(i, 1).Row
        Exit For
        End If
    Next
        

Dim lCodRef As Long
Dim lSeqEntNf As Long
Dim lCodProduto As Long
Dim cCtBruto As Currency
Dim dDtEntNf As Date
Dim sNfDoc As String
Dim sFornecedor As String
Dim sProduto As String
Dim sTipo As String
Dim lQt As Long
Dim sNomePeca As String
Dim lNumeroAneis As Long
Dim dPesoPeca As Double
Dim dIndMlg As Double
Dim dIndPeso As Double
Dim sEmpresaBanho As String
Dim cValorOutros As Currency
Dim sDescricaoOutros As String
Dim dIndCalc As Double
Dim cPrecorev As Currency
Dim cPrecoLoja As Currency
Dim cCtUnid As Currency
Dim cTotalPrecoFinal As Currency
Dim cTotalEnt As Currency
Dim dParticipacao As Double


lCodRef = Me.txtcodref
lSeqEntNf = Me.cbseqentnf
lCodProduto = Me.cbcodproduto
cCtBruto = Me.txtctbruto
dDtEntNf = Me.txtdtentnf
sNfDoc = Me.txtnfdoc
sFornecedor = Me.txtfornecedor
sProduto = Me.txtproduto
sTipo = Me.txttipo
lQt = Me.txtqt
sNomePeca = Me.txtnomepeca
lNumeroAneis = Me.txtnumeroaneis
dPesoPeca = Me.txtpesopeca
dIndMlg = Me.txtindmlg
dIndPeso = Me.txtindpeso
sEmpresaBanho = Me.txtempresabanho
cValorOutros = Me.txtvaloroutros
sDescricaoOutros = Me.cbdescricaooutros
dIndCalc = Me.txtindcalc
cPrecorev = Me.txtprecorev
cPrecoLoja = Me.txtprecoloja
cCtUnid = Me.txtctunid
cTotalPrecoFinal = Me.txttotalprecofinal
cTotalEnt = Me.txttotalent
dParticipacao = Me.txtparticipacao

Cells(i, 1) = lCodRef
Cells(i, 2) = lSeqEntNf
Cells(i, 6) = lCodProduto
Cells(i, 10) = cCtBruto
Cells(i, 3) = dDtEntNf
Cells(i, 5) = sNfDoc
Cells(i, 4) = sFornecedor
Cells(i, 7) = sProduto
Cells(i, 9) = sTipo
Cells(i, 11) = lQt
Cells(i, 8) = sNomePeca
Cells(i, 34) = lNumeroAneis
Cells(i, 14) = dPesoPeca
Cells(i, 13) = dIndMlg
Cells(i, 15) = dIndPeso
Cells(i, 12) = sEmpresaBanho
Cells(i, 35) = cValorOutros
Cells(i, 36) = sDescricaoOutros
Cells(i, 21) = dIndCalc
Cells(i, 17) = cPrecorev
Cells(i, 18) = cPrecoLoja
Cells(i, 16) = cCtUnif
Cells(i, 20) = cTotalPrecoFinal
Cells(i, 19) = cTotalEnt
Cells(i, 23) = dParticipacao

    
            
End If
    
    MsgBox "Cadastro " & Me.txtcodref & " editado com sucesso.", vbOKOnly, ""
    
        
    Application.DisplayAlerts = False 'Disabilita o prompt
    ActiveWorkbook.Save 'Salva as alterações
    Application.DisplayAlerts = True 'Habilita o prompt
End Sub
 
Postado : 10/05/2013 4:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Somente pelo código fica dificil, ainda mais que não encontrei a linha que diz "onde esta em negrito, sublinhado e com smilies, la esta o erro.".

Quanto aos DIM, se a Declaramos erroneamente podemos comprometer todo o Projeto, de uma olhada no link abaixo quanto as Declarações de Variáveis:

VBA -Declaração de Variáveis
http://www.juliobattisti.com.br/cursos/ ... lo5/08.asp

[]s

 
Postado : 10/05/2013 6:22 pm
(@ueleodoro)
Posts: 133
Estimable Member
Topic starter
 

O negrito não saiu, não sei pq. Mas a linha com erro é a primeira linha abaixo:

[b]For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row[/b]
If Cells(i, 1) = Me.txtcodref Then
Lin = Cells(i, 1).Row
Exit For
End If
Next

Sobre as Dim não sei se pode conter erros, o que percebi é que quando a base de dados é pequena funciona normalmente, mas se a base de dados é grande da esse erro.

 
Postado : 11/05/2013 8:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Para alguns fica complicado opinar sem o anexo compactado......... :?

Att

 
Postado : 11/05/2013 8:16 am
(@ueleodoro)
Posts: 133
Estimable Member
Topic starter
 

Esta certo eu não posso postar a base de dados......vou tentar um modelo simplificado e inventar 3mil linhas para ver se da o erro, pois com uma base de dados com 100 linhas funciona certinho...

 
Postado : 11/05/2013 8:25 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Realmente, sem o exemplo fica complicado.
A variavel byte e muito limitada (se não me engano 255), talvez deva utilizar integer
Tambem Não entendi o porque de tantas variaveis.

 
Postado : 11/05/2013 8:28 am
(@ueleodoro)
Posts: 133
Estimable Member
Topic starter
 

Realmente o problema esta no Byte....eu tentei com long e apresentou outros problemas..as variáveis são dados da minha planilha e precisão entrar com os valores e formatos corretos...mas elas não estao dando problema...

 
Postado : 11/05/2013 9:54 am