Formulario que introduzca datos en vba

Tengo una hoja con muchos nombre en la fila 1

Y tengo otra hoja con los mismos nombres en la columna A

Lo que hace en una de las celdas es con BuscarV, cada vez que le meto un valor en la la hoja de las filas busca el nombre en la hoja donde los tengo en columna y multiplica el valor de la columna con el valor de la fila.

Hasta aquí todo bien. El problema es que hay muchísimos valores por lo que he decidido meter los nuevos datos en la hoja en la que los nombres están en la fila a través de un formulario, es decir, yo en el formulario busco el nombre y pongo el valor que quiero introducir y este es mi problema, no sé si algún experto me puede ayudar y decirme como haría esto.

1 respuesta

Respuesta
1

h o   l a:

Envíame tu archivo con el formulario y me explicas con ejemplos lo que necesitas.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “os- consulting” y el título de esta pregunta.

¡Gracias! enviado 

Gracias Dante Amor te lo he vuelto a enviar

Te anexo el código para agregar la receta a la base de datos

Dim h1, h2
'
Private Sub ComboBox1_Change()
'Por.Dante Amor
    ListBox1.Clear
    TextBox2 = ""
    If ComboBox1.Value = "" Or ComboBox1.ListIndex = -1 Then Exit Sub
    fila = ComboBox1.ListIndex + 2
    For j = 3 To h2.Cells(fila, Columns.Count).End(xlToLeft).Column Step 2
        If h2.Cells(fila, j) <> "" Then
            ListBox1.AddItem h2.Cells(fila, j)
            ListBox1.List(ListBox1.ListCount - 1, 1) = Format(Val(h2.Cells(fila, j - 1).Value), "#,##0.00")
        End If
    Next
End Sub
'
Private Sub CommandButton1_Click()
'Por.Dante Amor
    'Validaciones
    If ComboBox1 = "" Or ComboBox1.ListIndex = -1 Then
        MsgBox "Agregar ingrediente"
        ComboBox1.SetFocus
        Exit Sub
    End If
    If ListBox1.ListIndex = -1 Then
        MsgBox "Seleccionar proveedor"
        Exit Sub
    End If
    If TextBox2 = "" Or TextBox2 = 0 Or Not IsNumeric(TextBox2.Value) Then
        MsgBox "Agregar Cantidad correcta"
        TextBox2.SetFocus
        Exit Sub
    End If
    '
    ListBox2.AddItem ComboBox1.Value
    ListBox2.List(ListBox2.ListCount - 1, 1) = TextBox2.Value
    ListBox2.List(ListBox2.ListCount - 1, 2) = ListBox1.List(ListBox1.ListIndex, 0)
    ListBox2.List(ListBox2.ListCount - 1, 3) = ListBox1.List(ListBox1.ListIndex, 1)
    '
    ComboBox1 = ""
End Sub
'
Private Sub CommandButton2_Click()
'Por.Dante Amor
    'Validaciones
    If TextBox1 = "" Then
        MsgBox "Agregar el nombre de la receta"
        TextBox1.SetFocus
        Exit Sub
    End If
    Set b = h1.Columns("A").Find(TextBox1, lookat:=xlWhole)
    If Not b Is Nothing Then
        MsgBox "El nombre de la receta ya existe"
        TextBox1.SetFocus
        Exit Sub
    End If
    '
    If ListBox2.ListCount = 0 Then
        MsgBox "Agrega ingredientes"
        ComboBox1.SetFocus
        Exit Sub
    End If
    '
    u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
    For i = 0 To ListBox2.ListCount - 1
        h1.Cells(u, "A") = TextBox1
        h1.Cells(u, "B") = ListBox2.List(i, 0)
        h1.Cells(u, "C") = ListBox2.List(i, 1)
        h1.Cells(u, "D") = ListBox2.List(i, 2)
        h1.Cells(u, "E") = ListBox2.List(i, 3)
        u = u + 1
    Next
    '
    'Limpiar
    TextBox1 = ""
    ComboBox1 = ""
    ListBox2.Clear
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    Set h1 = Sheets("Recetas")
    Set h2 = Sheets("Ingredientes")
    For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
        ComboBox1.AddItem h2.Cells(i, "A")
    Next
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias! Gracias

Pero da este error: 

¿Probaste el archivo que te envié? Prueba con mi archivo.

¿Cambiaste algo en las macros? No cambies las macros y primero realiza las pruebas.

Pusiste esta línea "option explicit", si es así, quita esa línea.

Revisa en el menú de vba, Herramientas, Referencias, y si alguna referencia tiene la palabra "FALTA", desactiva la casilla.

Revisa también, en el menú de VBA, Herramientas, Opciones y en la pestaña de Editor, desactiva la casilla Requerir declaración de variables.

Ya por último, si vas a dejar la instrucción Option Explicit, entonces declara las variables. Antes de cada variable pon la declaración, por ejemplo, para la variable i

Dim i

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

No me llegó ningún archivo 

Ya te envié nuevamente el archivo.

Cuando copies la macro, revisa que la hayas copiado completa. La macro empieza con la declaración de 2 variables:

Dim h1, h2
'

Además tienes que utilizar mi archivo, porque ahí va el formulario diseñado para la aplicación.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias! 

No sé a que correo la estas enviando,

Mi correo es [email protected]

A este correo:

[email protected]

Revisa en el spam o que no esté lleno tu correo

O envíame otro correo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas