Error definido por la aplicación o por el objeto?
Tengo un formulario de ingreso de datos a una hoja de excel, el formulario se compone de dos combobox dependientes (con esto no hay problema) y varios textbox y un boton de registrar, el ingreso de datos no me da ningún inconveniente, al dar en el botón REGISTRAR me genera el error 1004, error definido por la aplicación o por el objeto exactamente en la siguiente rutina:
Private Sub ComboBox1_Change()
ComboBox2.Clear
Sheets("Subcategorias").Select
columna1 = ComboBox1.ListIndex + 1
Cells(2, columna1).Select 'aqui me señala el error
UltimaFila = Columns("A:A").Range("A65536").End(xlUp).Row
For cont = 2 To UltimaFila
If Cells(cont, columna1) <> "" Then
ComboBox2.AddItem (Cells(cont, columna1))
End If
Next
Sheets("Menu").Select
End Sub
Considerando que no sea suficiente, envío a continuación el código completo, gracias mil.
Private Sub btn_Registrar_Click()
Dim Fila As Long
Dim Final As Long
Dim Titulo As String
Dim xControl As Control
Titulo = "Ágora KFB"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If Me.ComboBox1 = "" Then
Me.ComboBox1.BackColor = &HC0C0FF
MsgBox "Debe ingresar Categoría", vbExclamation, "Ágora KFB"
Me.ComboBox1.SetFocus
Exit Sub
ElseIf Me.ComboBox2 = "" Then
Me.ComboBox2.BackColor = &HC0C0FF
MsgBox "Debe ingresar Subcategoría", vbExclamation, "Ágora KFB"
Me.ComboBox2.SetFocus
Exit Sub
ElseIf Me.txt_Detalle = "" Then
Me.txt_Detalle.BackColor = &HC0C0FF
MsgBox "Debe ingresar el Detalle del Recibo de Gastos", vbExclamation, "Ágora KFB"
Me.txt_Detalle.SetFocus
Exit Sub
ElseIf Me.txt_Importe = "" Then
Me.txt_Importe.BackColor = &HC0C0FF
MsgBox "Debe ingresar el valor del Gasto", vbExclamation, "Ágora KFB"
Me.txt_Importe.SetFocus
Exit Sub
End If
'Determina el final del listado de Gastos
Final = GetNuevoR(Hoja19)
If MsgBox("Son correctos los datos?" + Chr(13) + "Desea proceder?", vbOKCancel + vbQuestion, "Ágora KFB") = vbOK Then
'Envía los datos a la hoja de Gastos
Me.ComboBox1.BackColor = &HFFFFFF
Hoja16.Cells(Final, 1) = Me.ComboBox1
Hoja16.Cells(Final, 2) = Me.ComboBox2
Hoja16.Cells(Final, 3) = Me.DTPicker1
Hoja16.Cells(Final, 4) = Me.txt_Detalle
Hoja16.Cells(Final, 5) = Me.txt_Importe.Value
Hoja16.Cells(Final, 6) = Hoja9.Range("G1") 'Usuario responsalbe de la operación
'-----------------------------------------------
'Limpia los controles
Me.ComboBox1 = ""
Me.ComboBox2 = ""
Me.txt_Detalle = ""
Me.txt_Importe = ""
Me.ComboBox1.SetFocus
Else
Exit Sub
End If
End Sub
Private Sub btn_Salir_Click()
Unload Me
End Sub
Private Sub ComboBox1_Change()
ComboBox2.Clear
Sheets("Subcategorias").Select
columna1 = ComboBox1.ListIndex + 1
Cells(2, columna1).Select
UltimaFila = Columns("A:A").Range("A65536").End(xlUp).Row
For cont = 2 To UltimaFila
If Cells(cont, columna1) <> "" Then
ComboBox2.AddItem (Cells(cont, columna1))
End If
Next
Sheets("Menu").Select
End Sub
Private Sub txt_Importe_Exit(ByVal Cancel As MSForms.ReturnBoolean)
txt_Importe = Format(txt_Importe, "currency")
End Sub
Private Sub UserForm_Activate()
Sheets("Categorias").Select
UltimaFila = Columns("A:A").Range("A65536").End(xlUp).Row
For cont = 2 To UltimaFila
If Cells(cont, 1) <> "" Then
ComboBox1.AddItem (Cells(cont, 1))
End If
Next
Sheets("Menu").Select
End Sub