Formulario en Hoja de Excel

Antes que nada agradecer por el tiempo que se toman en atender nuestras preguntas tengo una gran inquietud y no se si podrian ayudarme con este problema tengo una hoja llamada datos donde tengo una formulario armado en la misma hoja osea nombre en la celda B2 apellido paterno en la D2 apellido materno en la F2 mas abajo Departamento en la celda B4 Provincia en la celda D4
Distrito en la celda F4 y así e armado el formulario en la misma hoja (nota: en las celdas que te nombro es donde pongo la información) lo que deseo es poder guardar esa información en otra hoja llamada registro pero en toda una fila ya que quiero tener un registro de las personas que ingresó en ese formulario espero puedan ayudarme y de antemano Muchas Gracias por la ayuda

Imagen del primer formulario en la hoja datos

Imagen de la hoja donde se guardaran los datos llamada registro

Respuesta
1

Intenta con el siguiente código:

Private Sub registrar()
Set a = Sheets("DATOS")
Set b = Sheets("REGISTRO")
c = b.Cells(Rows.Count, 1).End(xlUp).Row + 1
b.Cells(c, 1) = a.Range("B2")
b.Cells(c, 2) = a.Range("D2")
b.Cells(c, 3) = a.Range("F2")
b.Cells(c, 4) = a.Range("B4")
b.Cells(c, 5) = a.Range("D4")
b.Cells(c, 6) = a.Range("F4")
a.Range("B2") = ""
a.Range("D2") = ""
a.Range("F2") = ""
a.Range("B4") = ""
a.Range("D4") = ""
a.Range("F4") = ""
End Sub

Puedes crear un botón y asignarle esa macro.

2 respuestas más de otros expertos

Respuesta
1

Le prepare este archivo espero sea de ayuda, saludos

Link para descarga

Respuesta
1

Es mucho mejor si conviertes la tabla de la hoja registros en una tabla insertada de Excel y la llamas Base_datos, esto tienes múltiples ventajas sobre una tabla normal, en la hoja1 le añadí un botón para ejecutar la macro que guardara los campos

y esta es la segunda pantalla de como quedaría en tu registro

como ves aparece el nombre de la tabla y si la selecciones sin importar desde la hoja donde estés en automático te lleva a esa tabla y esta es la macro

Sub agregar_registros()
filas = Range("base_datos").Rows.Count
With Range("base_datos")
    filas = .Rows.Count
    vacio = WorksheetFunction.CountBlank(.Rows(filas))
    If vacio > 0 Then Set fila = .Rows(filas)
    If vacio = 0 Then Set fila = .Rows(filas + 1)
    With fila
        .Cells(1, 1).Value = Sheets("datos").Range("b2").Value
        .Cells(1, 2).Value = Sheets("datos").Range("d2").Value
        .Cells(1, 3).Value = Sheets("datos").Range("f2").Value
        .Cells(1, 4).Value = Sheets("datos").Range("b4").Value
        .Cells(1, 5).Value = Sheets("datos").Range("d4").Value
        .Cells(1, 6).Value = Sheets("datos").Range("f4").Value
    End With
End With
MsgBox ("REGISTRO CAPTURADO"), vbInformation, "AVISO"
Set fila = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas