Como Hacer un formulario para ingresar datos a una base de datos en excel VBA

Dim ultfil As Long
Dim ultimafila As Long
On Error GoTo Errorx
Sheets("PlanDeMonitoreo").Activate
ultfil = Hoja1.Cells.Find("A", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
If Me.TextBox1 = "" Or Me.TextBox2 = "" Or Me.ComboBox1 = "" Or Me.ComboBox2 = "" Or Me.TextBox5 = "" Or Me.TextBox7 = "" Or Me.TextBox8 = "" Or Me.TextBox9 = "" Or Me.TextBox10 = "" Or Me.TextBox11 = "" Or Me.TextBox12 = "" Or Me.TextBox12 = "" Or Me.TextBox13 = "" Or Me.TextBox14 = "" Or Me.TextBox15 = "" Then
    MsgBox " Faltan Campos Por completar", vbCritical, "ATENCION !"
    ElseIf Application.WorksheetFunction.CountIf(Hoja1.Range("A6:A" & ultfil), Me.TextBox1) >= 1 Then
        MsgBox " Este codigo ya esta registrado ", vbCritical, "ATENCION !"
        Ingresar.Hide
        Unload Me
        Load Ingresar
        Ingresar.Show
        Exit Sub
        Range("a6").Select
        Do While Not IsEmpty(ActiveCell)
        ActiveCell.Offset(1, 0).Select
        Loop
        ActiveCell = TextBox1.Value
        ActiveCell.Offset(0, 1).Select
Else
ultimafila = Range("A" & Rows.Count).End(xlUp).Row + 1
Range("A" & ultimafila).Value = Me.TextBox1
Range("A" & ultimafila).Interior.Color = RGB(153, 204, 255)
Range("B" & ultimafila).Value = Me.TextBox2
Range("C" & ultimafila).Value = Me.ComboBox1
Range("D" & ultimafila).Value = Me.ComboBox2
Range("E" & ultimafila).Value = Me.TextBox5
Range("G" & ultimafila).Value = Me.TextBox7
Range("H" & ultimafila).Value = Me.TextBox8
Range("I" & ultimafila).Value = Me.TextBox9
Range("J" & ultimafila).Value = Me.TextBox10
Range("K" & ultimafila).Value = Me.TextBox11
Range("L" & ultimafila).Value = Me.TextBox12
Range("M" & ultimafila).Value = Me.TextBox13
Range("N" & ultimafila).Value = Me.TextBox14
Range("O" & ultimafila).Value = Me.TextBox15
Cells(Rows.Count, "f").End(xlUp).Offset(1) = ComboBox3
MsgBox " Se añadio registro satisfactoriamente ", vbInformation, " ATENCION !"
Ingresar.Hide
Unload Me
Load Ingresar
Ingresar.Show
End If
Errorx:
If Err.Number = 91 Then
    MsgBox "borre los campos y rellene denuevo"
    End If
End Sub

2 respuestas

Respuesta
1

Disculpa me olvide de comentar mi problema, la consulta es que siempre que quiero ingresar el código este me da el problema que siempre que le doy en ingresar siempre me da el error 91

Respuesta
1

¿Pero en cual línea se detiene la macro?

O envíame tu archivo para revisarlo [email protected] 

ultfil = Hoja1.Cells.Find("A", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

Me dice que se ha producido el error 91  : variable de objeto o bloque with no establecido

ultfil = Hoja1.Cells.Find("A", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
MsgBox " Faltan Campos Por completar", vbCritical, "ATENCION !"
    ElseIf Application.WorksheetFunction.CountIf(Hoja1.Range("A6:A" & ultfil), Me.TextBox1) >= 1 Then
        MsgBox " Este codigo ya esta registrado ", vbCritical, "ATENCION !"
        Ingresar.Hide
        Unload Me
        Load Ingresar
        Ingresar.Show
        Exit Sub

Creo que el problema esta ebn este codigo que use para verificar si el codigo que ingrese esta repetido

H o l a 

Envíame tu archivo y adecuar el código y validar de otra manera [email protected] 

Hola acabo de subir mi excel

Te paso la macro actualiz.

Private Sub botonadd_Click()
Dim h1, b
Dim ultfil As Long
Dim ultimafila As Long
'
Set h1 = Sheets("PlanDeMonitoreo")
If Me.TextBox1 = "" Or Me.TextBox2 = "" Or Me.ComboBox1 = "" Or Me.ComboBox2 = "" Or _
Me.TextBox5 = "" Or Me.TextBox7 = "" Or Me.TextBox8 = "" Or Me.TextBox9 = "" Or _
Me.TextBox10 = "" Or Me.TextBox11 = "" Or Me.TextBox12 = "" Or Me.TextBox12 = "" _
Or Me.TextBox13 = "" Or Me.TextBox14 = "" Or Me.TextBox15 = "" Then
'
MsgBox "Llene los campos obligatorios", vbInformation
Exit Sub
End If
'
Set b = h1.Columns("A").Find(TextBox1, lookat:=xlWhole)
    '
    If Not b Is Nothing Then
        MsgBox " Este codigo ya esta registrado ", vbCritical, "ATENCION !"
        Exit Sub
     End If
        '
ultimafila = Range("A" & Rows.Count).End(xlUp).Row + 1
Range("A" & ultimafila).Value = Val(Me.TextBox1)
Range("A" & ultimafila).Interior.Color = RGB(153, 204, 255)
Range("B" & ultimafila).Value = Me.TextBox2
Range("C" & ultimafila).Value = Me.ComboBox1
Range("D" & ultimafila).Value = Me.ComboBox2
Range("E" & ultimafila).Value = Me.TextBox5
Range("G" & ultimafila).Value = Me.TextBox7
Range("H" & ultimafila).Value = Me.TextBox8
Range("I" & ultimafila).Value = Me.TextBox9
Range("J" & ultimafila).Value = Me.TextBox10
Range("K" & ultimafila).Value = Me.TextBox11
Range("L" & ultimafila).Value = Me.TextBox12
Range("M" & ultimafila).Value = Me.TextBox13
Range("N" & ultimafila).Value = Me.TextBox14
Range("O" & ultimafila).Value = Me.TextBox15
Cells(Rows.Count, "f").End(xlUp).Offset(1) = ComboBox3
'
MsgBox " Se añadio registro satisfactoriamente ", vbInformation, " ATENCION !"
'
Ingresar.Hide
Unload Me
Load Ingresar
Ingresar.Show
'
End Sub

Valora para finalizar saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas