Errores en programación VBA excel

Tengo necesidad de automatizar Orden de Trabajo para un taller de servicio técnico automotriz, la misma se guarde en tabla historico; no ejecuta el proceso por algún error que cometí, puesto que soy novato aficionado en programación VBA excel. Lo dejo en Google Drive para que puedas revisarlo.

1 respuesta

Respuesta
-1

No puso el link para ver su archivo

¡Gracias! 

https://drive.google.com/open?id=1G_xsbeH3bRzeGI9PAnhdimtF1twFUe09 

Lo que observe es que la tabla tblSistema no esta nombrada, y agregue dos líneas de código "On error resumne next" con eso me guarda el registro

Function insertarRegistro(noidbd As String, idcl As String, idprov As String, detalle As String, unitario As String) As String
    Dim ultFila, filaRegistro, existe As Long
    Dim confirmacionRegistro As String
    confirmacionRegistro = "NO"
    ultFila = Range("A" & Rows.Count).End(xlUp).Row
    If ultFila < 5 Then
        filaRegistro = 5
    Else
        filaRegistro = ultFila + 1
    End If
    If ultFila < 5 Then
        ultFila = 5
    End If
    existe = filaExisteRegistro(noidbd, "A5:A" & ultFila)
    If existe > 0 Then
        MsgBox "El número de código ya existe en Catálogo.", vbCritical, "Master Car"
        insertarRegistro = confirmacionRegistro
        Exit Function
    End If

'SE AGREGO ESTA LINEA DE CODIGO
    On Error Resume Next
    ' Asignacion de datos a los campos de la base de datos clientes
    Productos.Cells(filaRegistro, 1) = noidbd
    Productos.Cells(filaRegistro, 2) = idcl
    Productos.Cells(filaRegistro, 3) = idprov
    Productos.Cells(filaRegistro, 4) = detalle
    Productos.Cells(filaRegistro, 5) = unitario
    ' Confirmación de registro ingresado de datos a los campos de la base de datos
    MsgBox "Registro almacenado exitosamente.", vbInformation, "Master Car"
    confirmacionRegistro = "Ingresado"
    insertarRegistro = confirmacionRegistro
End Function
' Control ingreso de duplicado de registros a la base de datos
Private Function filaExisteRegistro(noidbd As String, rangoConsulta As String) As Long
    Dim numeroFila As Long
    numeroFila = 0
'SE AGREGO ESTA LINEA DE CODIGO
    On Error Resume Next
    With Productos.Range(rangoConsulta)
        Set c = .Find(noidbd, Lookat:=xlWhole)
            If Not c Is Nothing Then
            numeroFila = c.Row
        End If
    End With
    filaExisteRegistro = numeroFila
End Function

Buenos días de Dios, Víctor Manuel

Gracias por la pronta respuesta. Agregué las dos instrucciones On Error Resume Next. Ejecuta el programa:

Insertar: Msg. "Registro almacenado exitosamente"; verificando la tbl Catalogo 1) no guarda registro, 2) no controla duplicado.

Actualizar: 1) registro nº código, 2) btn. consultar Msg. "No existe el número de código", sin embargo, existe el número de código.

Eliminar: Idem 

tblSistemas, está activado en propiedades: Rowsource.

He insertado en las mismas líneas de código, salvo error u omisión de mi parte. Nuevamente, muy agradecido por la pronta respuesta. A la espera de tus comentarios, me despido, deseándote un hermoso y bendecido día. Éxitos renovados.

Eduardo

Por cuestiones de tiempo no había podido checar tu archivo analizando el código, se me facilito un poco mas código nuevo para guardar los datos, si esta de acuerdo podría checar las demás opciones (Consultar, actualizar y eliminar) del formulario. En el siguiente enlace podrá descargar el archivo y hacer la prueba. Saludos

https://drive.google.com/open?id=1UB4d8a6zK1gY84lksaYKAljZAAtIchv2 

Archivo: MasterCar modif.xlsm

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas