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.
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