Mostrar los registros de un formulario de excel en la hoja

Me surgió una duda

Tengo un formulario de captura en excel que al darle guardar me r registra los datos

Hasta ahí todo bien, mi cuestionamiento es el siguiente

Mi rango de celdas es desde la celda A5-L5 (que son mis títulos)

Mi formulario consta de la siguiente estructura

Ok la parte que esta en rectángulo rojo

Es donde se me complica lo que requiero es que si capturo la información me la sobreescribe en la misma celda es decir al capturar el sku 1, sku2... Etc

Lo coloca en la celda f6

Lo requiero es que lo haga un registro en cada fila

1 respuesta

Respuesta
1

[Hola

No mencionas como "Guardas" los datos pero ahí debe estar el problema, probablemente siempre lo mandas a partir de la celda que mencionas y/o a la celda activa que seguramente es esa.

Abraham Valencia

Tengo este código en mi botón de guardar

Dim Mensaje, Estilo, Titulo, Ayuda, Ctxt, Respuesta, MiCadena
Mensaje = "¿Desea continuar capturando ?" 'Define el mensaje
Estilo = vbYesNo + vbCritical + vbDefaultButton2 ' Define los botones que se mostrarán
Titulo = "Base Captura ALEN" 'Define el titulo que se mostrará en la ventana
Ayuda = "DEMO.HLP" ' Define el archivo de ayuda
Ctxt = 1000 'Define el tema
'El texto
'Muestra el mensaje
Respuesta = MsgBox(Mensaje, Estilo, Titulo, Ayuda, Ctxt)
If Respuesta = vbYes Then 'Si el usuario elige si.
MiCadena = "Si" 'Ejecuta una acción
Else ' El usuario eigió el botón no.
Mdlto.limpia
End If
Application.ScreenUpdating = False

Dim celda As Double
Dim revisa As Boolean

revisa = Mdlto.verifica

If revisa And IsNumeric(sap) And IsNumeric(empaque) And IsNumeric(sku1) And IsNumeric(sku2) And IsNumeric(sku3) And IsNumeric(sku4) And IsNumeric(promo1) And IsNumeric(promo2) And IsNumeric(total) Then

Sheets("ENC").Select
If Cells(6, 1) = "" Then
celda = Cells(6, 1).Row
Else
Cells(5, 1).Select
celda = Selection.End(xlDown).Row + 1
End If

Cells(celda, 1) = sap.Value
Cells(celda, 2) = sucursal.Value
Cells(celda, 3) = fecha.Value
Cells(celda, 4) = operador.Value
Cells(celda, 5) = empaque.Value
Cells(celda, 6) = sku1.Value
Cells(celda, 7) = descripcion_uno.Value
Cells(celda, 6) = sku2.Value
Cells(celda, 7) = descripcion_dos.Value
Cells(celda, 6) = sku3.Value
Cells(celda, 7) = descripcion_tre.Value
Cells(celda, 6) = sku4.Value
Cells(celda, 7) = descripcion_cuatro.Value
Cells(celda, 8) = promo1.Value
Cells(celda, 9) = regalo_promo_1.Value
Cells(celda, 8) = promo2.Value
Cells(celda, 9) = regalo_promo_2.Value
Cells(celda, 10) = comentarios.Value
Cells(celda, 11) = total.Value
If uno_si Then
Cells(celda, 12) = "Si"
Else
Cells(celda, 12) = "No"
End If
Mdlto.limpia
Else
If revisa = False Then
MsgBox "Debes llenar todos los campos"
Mdlto.senala
sap.SetFocus
ElseIf IsNumeric(sap.Value) = False And IsNumeric(empaque.Value) = False And IsNumeric(sku1.Value) = False And IsNumeric(sku2.Value) = False And IsNumeric(sku3.Value) = False And IsNumeric(sku4.Value) = False And IsNumeric(PROMO_1.Value) = False And IsNumeric(promo_2.Value) = False And IsNumeric(total.Value) = False Then
sap.Value = ""
empaque.Value = ""
sku1.Value = ""
sku2.Value = ""
sku3.Value = ""
sku4.Value = ""
promo1.Value = ""
promo2.Value = ""
MsgBox "El Sap, el emaque y los skus deben de ser numeros"
sap.BackColor = RGB(255, 0, 0)
empaque.BackColor = RGB(255, 0, 0)
sku1.BackColor = RGB(255, 0, 0)
sku2.BackColor = RGB(255, 0, 0)
sku3.BackColor = RGB(255, 0, 0)
sku4.BackColor = RGB(255, 0, 0)
promo1.BackColor = RGB(255, 0, 0)
promo2.BackColor = RGB(255, 0, 0)
total.BackColor = RGB(255, 0, 0)
sap.SetFocus
ElseIf IsNumeric(sap.Value) = False Then
sap.Value = ""
MsgBox " El SAP debe ser número"
sap.BackColor = RGB(255, 245, 122)
sap.SetFocus
ElseIf IsNumeric(empaque.Value) = False Then
empaque.Value = ""
MsgBox " El empaque debe ser número"
empaque.BackColor = RGB(255, 245, 122)
empaque.SetFocus
ElseIf IsNumeric(sku1.Value) = False Then
sku1.Value = ""
MsgBox " El Sku debe ser número"
sku1.BackColor = RGB(255, 245, 122)
sku1.SetFocus
ElseIf IsNumeric(sku2.Value) = False Then
sku2.Value = ""
MsgBox " El Sku debe ser número"
sku2.BackColor = RGB(255, 245, 122)
sku2.SetFocus
ElseIf IsNumeric(sku3.Value) = False Then
sku3.Value = ""
MsgBox " El Sku debe ser número"
sku3.BackColor = RGB(255, 245, 122)
sku3.SetFocus
ElseIf IsNumeric(sku4.Value) = False Then
sku4.Value = ""
MsgBox " El Sku debe ser número"
sku4.BackColor = RGB(255, 245, 122)
sku4.SetFocus
End If
End If
End Sub

Al darle guardar no me guarda los demás registros que se capturan lo sobre escribe en la misma fila y lo que requiero es que ponga cada registro hacia abajo

No era necesario enviar todo eso.

Mira, en esto:

If Cells(6, 1) = "" Then
celda = Cells(6, 1).Row
Else
Cells(5, 1).Select
celda = Selection.End(xlDown).Row + 1
End If

Le estás diciendo que si la celda "A6" está vacía, la variable celda es "6" todo siempre se guardará en esa fila, así que aunque tengas más datos en filas inferiores, si esa celda está vacía, todo irá ahí.

Abraham Valencia

Es correcto eso si es como lo tengo

Pero los demás texbox que tengo en mi formulario los al darle guardar no los registra en mi base, sobre escribe la información en la misma fila en vez de que se muestren todos

Cual seria la instrucción o donde tendría que hacer el cambio para que me muestre todo

Si pudieras apoyarme

Muchas gracias

Pues, como te digo, si tu celda "A6" está vacía, siempre ocurrirá eso, basta que le coloques algo y ya pero no puedo dar más detalles dado que no conozco tus datos, no puedo ver desde aquí tu hoja. No es necesario cambiar tu código.

Abraham Valencia

Disculpa la tardanza por contestar no tenia internet

Seria mucha molestia si te envío mi archivo y que me apoyes

Pues surgió otra duda no me esta guardando los datos en la hoja

[Hola

Coloca el archivo en un "Drive" y comparte por aquí el enlace.

Abraham Valencia

[Hola

Si dejas el "TextBox" llamado "SAP" vacío, siempre guardará los datos en la misma fila ya que la variable que busca la "fila vacía" se basa en la columna "A" y los datos de "SAP" van a esa columna. Si siempre tiene un dato, pues nunca se guardarán los datos sobre escribiéndose:

No he cambiado nada en tu código, y todo se guardar bien pero, repito, siempre y cuando la columna "A" ("TextBox":SAP) no estén vacíos.

Saludos]

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas