Programación avanzada

HOLA: Mi nombre es Samuel, y quisiera saber si me puedes ayudar con una aplicación. Estoy creando una base de datos en Excel 2003. Tengo un formulario que ba a introducir los datos en la hoja de calculo, pero no se como hacer que al pulsar un botón llamado nuevo, cambie el foco ala celda de abajo. De antemano te agradezco que atiendas esta petición!
Samuel.

1 respuesta

Respuesta
1
Supongo que cuando te refieres a la celda de abajo es la celda en la planilla.
Si es así, la instrucción es:
activecell.offset(1,0).select
Esperando tus comentarios y deseándote una feliz navidad y un próspero año nuevo, se despide de ti con un abrazo fraterno.
Juan
No olvides de finalizar tu pregunta
Acabo de hacer lo que me mandaste y solo me borra lo que escribí en la celda. Tal vez no me supe explicar, pero tratare de hacerlo: Mira tengo una hoja de calculo en excel 2003. Enella puse un botón que se llama "nuevo" este botón hace aparecer un formulario que se llama "Nueva Factura" en el tengo tres texbox y un botón llamado "agregar" en el puse el código que me mandaste pero solo me morra lo que puse en uno de los cuadros. Lo que quiero es que al pulsar el botón me mande a la celda de abajo, por ejemplo: si estoy en A1, me manse a A2 para ingresar nuevos datos tal como lo hacen los fromularios predeterminados de excel. Samuel
Samuel:
Espero que con el siguiente programa se acaben tus desvelos, por lo menos por ahora.
¡Aquí va!
Option Explicit
Private Sub Agregar_Click()
On Error GoTo Tratar_Errores
Dim Respuesta As Integer
Dim Fecha As Date
Dim Valor As Single
If Factura.Text = "" Or _
Proveedor.Text = "" Or _
Fecha_Factura.Text = "" Or _
Valor_Factura.Text = "" Then
MsgBox ("No deben haber campos en blanco")
Factura.SetFocus
Exit Sub
End If
ActiveSheet.Range("A1").Activate
If IsEmpty(ActiveCell) Then
ActiveCell.Value = "Factura"
ActiveCell.Offset(0, 1).Value = "Proveedor"
ActiveCell.Offset(0, 2).Value = "Fecha"
ActiveCell.Offset(0, 3).Value = "Valor"
End If
ActiveCell.Offset(1, 0).Activate
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
Loop
Respuesta = MsgBox("¿Datos correctos?", _
vbYesNo + vbQuestion + vbDefaultButton1)
If Respuesta = vbNo Then
Exit Sub
End If
Fecha = Fecha_Factura
Valor = Valor_Factura
With ActiveCell
.Value = Factura
.Offset(0, 1).Value = Proveedor
.Offset(0, 2).Value = Fecha
.Offset(0, 3).Value = Valor_Factura
End With
ActiveCell.Offset(1, 0).Activate
Factura.Text = ""
Proveedor.Text = ""
Fecha_Factura.Text = ""
Valor_Factura.Text = ""
Factura.SetFocus
Tratar_Errores:
If Err.Number = 13 Then
MsgBox ("Debe ingresar Valor_Facturaes numéricos" & Chr(13) & "en el campo Valor_Factura y Fecha")
Factura.SetFocus
End If
End Sub
Private Sub Salir_Form_Ingreso_Click()
Nueva_Factura.Hide 'End
End Sub
Private Sub UserForm_Activate()
Factura.SetFocus
End Sub
Este programa de ejemplo tiene 4 textboxs, 1 botón Agregar y 1 botón Salir
TextBox1 = Factura
TextBox2 = Proveedor
TextBox3 = Fecha
TextBox4 = Valor
Analiza este programa y adáptalo a tus necesidades.
¡Que te vaya bien!
Juan
No te olvides de finalizar tu pregunta
Ya puse el código que me mandaste, pero no me resulto como lo esperaba tratare de explicar a dando quiero llegar: tengo un formulario llamado "FormFactura", en el puse 6 textbox, uno se llama "txtFolio" otro se llama "txtFecha" otro se llama "txtNombredelCliente" otro se llama "txtArticulo" otro se llama "txtUnidades" otro se llama "txtPrecio" y el ultimo se llama "txttotal". También puse 4 Commandbuton, uno se llama "CmbAnterior" otro se llama "Cmbsiguiente" otro se llama "CmbNuevo" y el ultimo se llama "CmbCancelar". Lo que pretendo es lo siguiente (1). Que al pulsar el botón (CmbAnterior) me aparezca los datos del registro anterior en los TextBox. (2) que al pulsar el botón (Cmbsiguiente) me aparezcan los datos del registro siguiente en los TextBox. (3) que al pulsar el (CmbNuevo) me mande a la celda de abajo para ingresar los datos del nuevo registro, tal y como lo hacen los formularios de Excel 2003.
Si te preguntas que por que no utilizo esos formularios, te diré por que no. 1: Por que no los puedes diseñar de acuerdo a tus necesidades. 2: Por que cualquiera los puede sacar des de el menú (Datos Formularios.) 3: Por que para manejar Excel al 100% solo los expertos y la verdad algún día quisiera ser como tu, un experto.
De antemano te agradezco tu paciencia y amable atención, y espero que no me defraudes. Samuel
Samuel:
Envíame tu archivo a mi email y te soluciono tu problema
Mi email es: [email protected]
Te espero
Juan

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas