Userform para cumplimentar base de datos en excel

Para Dante Amor.

Quisiera un formulario para formar base de datos en excel.

Debería de pedir los siguientes términos:

Referencia (columna A), Artículo (B), Precio Coste (C), PVP (E), Fecha (N), Existencias Iniciales (O). En las columnas G hasta la L van fórmulas.

La introducción de datos empieza en la fila 2

1 Respuesta

Respuesta
1

H o l a:

¿Quieres un userform?

¿Ya tienes un diseño o quieres que te prepare un userform?

Envíame tu archivo con lo que tengas y me explicas con un ejemplo qué datos quieres poner en el userform y en qué hoja y qué columnas quieres que se guarden.

¡Gracias! Procedo a envío de archivo con una explicación clara, detallada

H o l a:

Te anexo el código para pasar los datos del userform a la hoja:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    If TextBox1 = "" Then
        MsgBox "Falta la referencia", vbCritical, "BASE DE DATOS"
        TextBox1.SetFocus
        Exit Sub
    End If
    If Not IsDate(TextBox5) Then
        MsgBox "Captura una fecha válida", vbCritical, "BASE DE DATOS"
        TextBox5.SetFocus
        Exit Sub
    End If
    If TextBox3 = "" Then txt3 = 0 Else txt3 = CDbl(TextBox3)
    If TextBox4 = "" Then txt4 = 0 Else txt4 = CDbl(TextBox4)
    If TextBox6 = "" Then txt6 = 0 Else txt6 = CDbl(TextBox6)
    '
    For i = 2 To Rows.Count
        If Cells(i, "A") = "" Then
            Cells(i, "A") = CDbl(TextBox1)
            Cells(i, "B") = TextBox2
            Cells(i, "C") = CDbl(txt3)
            Cells(i, "E") = CDbl(txt4)
            Cells(i, "N") = CDate(TextBox5)
            Cells(i, "O") = CDbl(txt6)
            Exit For
        End If
    Next
    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
    TextBox4 = ""
    TextBox5 = ""
    TextBox6 = ""
    MsgBox "Datos guardados"
End Sub
'
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    If (KeyAscii <> 46) And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0
End Sub
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    If (KeyAscii <> 46) And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0
End Sub
Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
'
Private Sub CommandButton2_Click()
    Unload Me
End Sub

':)
':)

¡Gracias! Una última pregunta anexa.¿Habría alguna forma de que la fila de datos buscase la ubicación buscando si hay hueco entre la secuencia correlativa de referencias?. Con un ejemplo será entendible. Si yo en la secuencia de referencias 1, 2, 3, 5, 7, 8 por ejemplo he dejado hueco en 4 que no ha sido cubierto. ¿Podrías hacer que si pongo como referencia 4 la secuencia de datos se intercalara entre las filas 3 y 5?

Una última pregunta anexa.¿Habría alguna forma de que la fila de datos buscase la ubicación buscando si hay hueco entre la secuencia correlativa de referencias?. Con un ejemplo será entendible. Si yo en la secuencia de referencias 1, 2, 3, 5, 7, 8 por ejemplo he dejado hueco en 4 que no ha sido cubierto. ¿Podrías hacer que si pongo como referencia 4 la secuencia de datos se intercalara entre las filas 3 y 5?

¿Pero en la referencia tienes un 4?

Si en la referencia tienes 80, pero está vacío el 4, ¿qué ponga el 80 en la secuencia del 4?

¿Y qué pasa si en la referencia tiene un 5 ya existe el 5?

Con mucho gusto te ayudo con todas tus peticiones.

Crea una nueva pregunta en todoexpertos, en el tema de microsoft excel, en el desarrollo de la pregunta escribe: "para Dante Amor", ahí me describes con detalle lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas