Responder
No me funciona la macro para almacenar los datos capturados en el formulario a un hoja en excel
Amigos estoy nerviosos porque este asunto no me funciona, confeccione un formulario en el editor visual basic para alimentar una base de datos en un hoja de excel, cuando ejecuto este procedimiento
me sale un mensaje que dice " Se ha producido el error 9 en tiempo de ejecución,Subíndice fuera del intervalo" no sé que hacer para arreglar el tema, yo no soy programador he tratado de aprender esto en forma autodidacta. A continuación les detallo el codigo de visual basic para aplicaciones excel.
este es mi mail patriciobernals@yahoo.es Si gustan les puedo enviar el archivo para que lo vean, pero necesito un mail de ustedes para enviarselo.
Private Sub cmdGuardar_Click()
If Val(TxtNumeroHabitacion.Text) < 101 Or Val(TxtNumeroHabitacion.Text) > 730 Then
MsgBox "Número de Habitación no válido."
TxtNumeroHabitacion.SetFocus
Exit Sub
End If
If TxtNombreHuesped.Text = "" Then
MsgBox "Introduzca el nombre del huespéd."
TxtNombreHuesped.SetFocus
Exit Sub
End If
If TxtCantidad.Text = "" Then
MsgBox "Introduzca la cantidad de gastos."
TxtCantidad.SetFocus
Exit Sub
End If
If TxtNumeroTarjeta.Text = "" Then
MsgBox "Introduzca el número de la tarjeta"
TxtNumeroTarjeta.SetFocus
Exit Sub
End If
Esta es la parte del código que no me funciona
Worksheets("Gastos de húespedes").Activate
Range("A2").Select
If Range("A2").Value = "" Then
Range("A2").Activate
Else
Range("A2").CurrentRegion.Select
ActiveCell.Offset(Selection.Rows.Count, 0).Activate
End If
With ActiveCell
.Value = TxtNumeroHabitacion.Text
.Offset(0, 1).Value = TxtNombreHuesped.Text
.Offset(0, 2).Value = cboTipoGasto.Text
.Offset(0, 3).Value = TxtCantidad.Text
.Offset(0, 4).Value = txtFecha.Text
.Offset(0, 5).Value = cboTipoTarjeta.Text
.Offset(0, 6).Value = TxtNumeroTarjeta.Text
End With
End Sub
Private Sub UserForm_Activate()
With cboTipoGasto
.RowSource = "Gastos"
.ListIndex = 0
End With
With TextFecha
TextFecha.Text = Format(Now, "dd/mm/yy")
End With
With cboTipoTarjetas
.RowSource = "Tarjetas"
.ListIndex = 0
End With
End Sub
me sale un mensaje que dice " Se ha producido el error 9 en tiempo de ejecución,Subíndice fuera del intervalo" no sé que hacer para arreglar el tema, yo no soy programador he tratado de aprender esto en forma autodidacta. A continuación les detallo el codigo de visual basic para aplicaciones excel.
este es mi mail patriciobernals@yahoo.es Si gustan les puedo enviar el archivo para que lo vean, pero necesito un mail de ustedes para enviarselo.
Private Sub cmdGuardar_Click()
If Val(TxtNumeroHabitacion.Text) < 101 Or Val(TxtNumeroHabitacion.Text) > 730 Then
MsgBox "Número de Habitación no válido."
TxtNumeroHabitacion.SetFocus
Exit Sub
End If
If TxtNombreHuesped.Text = "" Then
MsgBox "Introduzca el nombre del huespéd."
TxtNombreHuesped.SetFocus
Exit Sub
End If
If TxtCantidad.Text = "" Then
MsgBox "Introduzca la cantidad de gastos."
TxtCantidad.SetFocus
Exit Sub
End If
If TxtNumeroTarjeta.Text = "" Then
MsgBox "Introduzca el número de la tarjeta"
TxtNumeroTarjeta.SetFocus
Exit Sub
End If
Esta es la parte del código que no me funciona
Worksheets("Gastos de húespedes").Activate
Range("A2").Select
If Range("A2").Value = "" Then
Range("A2").Activate
Else
Range("A2").CurrentRegion.Select
ActiveCell.Offset(Selection.Rows.Count, 0).Activate
End If
With ActiveCell
.Value = TxtNumeroHabitacion.Text
.Offset(0, 1).Value = TxtNombreHuesped.Text
.Offset(0, 2).Value = cboTipoGasto.Text
.Offset(0, 3).Value = TxtCantidad.Text
.Offset(0, 4).Value = txtFecha.Text
.Offset(0, 5).Value = cboTipoTarjeta.Text
.Offset(0, 6).Value = TxtNumeroTarjeta.Text
End With
End Sub
Private Sub UserForm_Activate()
With cboTipoGasto
.RowSource = "Gastos"
.ListIndex = 0
End With
With TextFecha
TextFecha.Text = Format(Now, "dd/mm/yy")
End With
With cboTipoTarjetas
.RowSource = "Tarjetas"
.ListIndex = 0
End With
End Sub