Cómo modificar el valor de una celda dentro de un listado por el valor introducido en un UserForm's Textbox?

Tengo una tabla con productos y precios en mi hoja de Excel "Precios de Lista" por ejemplo:

Ahora realicé un formulario para modificar el precio de los productos (Ya que la tabla está oculta y con contraseña).

Lo que quiero hacer es que cuando apriete "Modificar Cotización", se actualice el precio de $10 a $15.- (No se bien como hacer un buscarv con referencia al valor del combobox.)

Graciassssssssssssss . Saludos desde Argentina =)

1 respuesta

Respuesta
1

Dentro del tu user Form en cada respectivo evento deberías poner algo así

'este procedimiento iguala el valor de la celda seleccionada a lo que pongamos en textbox2

Private Sub CommandButton1_Click()
Hoja1.Cells.Range("D2").Value = TextBox2.Value
End Sub

'Este cierra nuestro formulario

Private Sub CommandButton2_Click()
End
End Sub

'este extrae el valor actual de la celda, mostrandolo en nuestro textbox1

Private Sub UserForm_Activate()
Me.TextBox1.Text = Hoja1.Cells.Range("D2").Value
End Sub

Buenas Angel, muchas gracias por tu respuesta. Mi duda es... por qué utilizas D2? Yo NO se que celda es la que corresponde a por ejemplo "Jamón" ya que la lista está oculta.... y no es así de corta si no que tiene más de 200 items... Necesitaría algo como un buscarv o consultav referido a el nombre que yo elija en el combobox y que reemplace esa celda por el nuevo valor que yo introduzco... Gracias

Para inicializar un combobox utilice esto

Private Sub UserForm_Initialize()
     Range("A2").Select 'seleccionamos el primer concepto
     While ActiveCell <> ""
          ComboBox1.AddItem ActiveCell
          ActiveCell.Offset(1, 0).Select
     Wend

End Sub

para identificar los valores, segun el producto utilice esto:

'Declaramos las variables.
Dim Cantidad
Dim Rango As Range
Dim Buscado As Variant
Dim Precio, Iva, subtotal, Total

Private Sub ComboBox1_Change()

On Error GoTo ErrorHandler
'
Set Rango = Sheets(1).Range("A1").CurrentRegion
Buscado = Me.ComboBox1.Value
'
'Asignamos las variables del BUSCARV.
Precio = Application.WorksheetFunction.VLookup(Buscado, Rango, 2, 0)
Iva = Application.WorksheetFunction.VLookup(Buscado, Rango, 3, 0)
subtotal = Application.WorksheetFunction.VLookup(Buscado, Rango, 5, 0)
Total = Application.WorksheetFunction.VLookup(Buscado, Rango, 6, 0)
'
'Pasamos el resultado a los cuadros de texto correspondientes.
With Me
.TextBox1.Value = Precio
.TextBox3.Value = Iva
.TextBox4.Value = subtotal
.TextBox5.Value = Total
End With
'
Exit Sub
'
'De haberse encontrado un error mostramos mensajes.
ErrorHandler:
If Err.Number = 1004 Then
With Me
End With
Else
MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, "blah"
End If

End Sub

'Declaramos las variables.
Dim Cantidad
Dim Rango As Range
Dim Buscado As Variant
Dim Precio, Iva, subtotal, Total

Private Sub ComboBox1_Change()

On Error GoTo ErrorHandler
'
Set Rango = Sheets(1).Range("A1").CurrentRegion
Buscado = Me.ComboBox1.Value
'
'Asignamos las variables del BUSCARV.
Precio = Application.WorksheetFunction.VLookup(Buscado, Rango, 2, 0)
Iva = Application.WorksheetFunction.VLookup(Buscado, Rango, 3, 0)
subtotal = Application.WorksheetFunction.VLookup(Buscado, Rango, 5, 0)
Total = Application.WorksheetFunction.VLookup(Buscado, Rango, 6, 0)
'
'Pasamos el resultado a los cuadros de texto correspondientes.
With Me
.TextBox1.Value = Precio
.TextBox3.Value = Iva
.TextBox4.Value = subtotal
.TextBox5.Value = Total
End With
'
Exit Sub
'
'De haberse encontrado un error mostramos mensajes.
ErrorHandler:
If Err.Number = 1004 Then
With Me
End With
Else
MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, "blah"
End If

End Sub

Espero que esto te ayude un poco más con lo que necesitas..

Que tengas linda tarde

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas