Modificar datos con formulario vb en excel
Hola tengo una base datos en excel con unos 800 registros mensuales, quiero hacer un form de búsqueda donde pueda modificar los datos que están en 8 columnas, he echo un form de búsqueda y me encuentra los datos pero solo me modifica el 1 registro "enero" si quiero modificar en "no ahi forma" este es el código que tengo.
Private Sub ComboBox1_Enter()
Dim instance As ListBox
'En caso de error, que continúe On Error Resume Next 'limpiamos los datos del Combobox ComboBox1.Clear
'Al iniciar el formulario, 'seleccionamos la hoja con los datos HOLA.Select 'Seleccionamos la celda B5 Range("A6").Select 'Vamos a llenar dinámicamente el combobox 'con los nombres de los artículos, hasta 'encontrar una fila vacía Do While Not IsEmpty(ActiveCell) 'ponemos el nombre del producto ComboBox1.AddItem ActiveCell.Value 'bajamos una fila ActiveCell.Offset(1, 0).Select Loop End Sub Private Sub ComboBox1_Change() 'Miramos en qué fila está el producto 'seleccionado en el ComboBox, y le sumaremos '4 porque empezamos los productos en la fila '5 (celda A6). Sumaremos también un 1, porque 'los elementos del combobox empiezan a numerarse 'desde cero. Con lo cual sumaremos 4 + 1 = 5. 'Seleccionaremos esa fila, de la columna B, es 'decir, de la columna 2 (el producto) Cells(ComboBox1.ListIndex + 6, 1).Select 'cargamos los datos correspondientes 'al producto elegido TextBox2 = ActiveCell.Offset(0, 1) TextBox3 = ActiveCell.Offset(0, 2) TextBox4 = ActiveCell.Offset(0, 3) ComboBox1.SetFocus End Sub Private Sub ComboBox2_Enter() 'En caso de error, que continúe On Error Resume Next 'limpiamos los datos del Combobox ComboBox2.Clear 'Al iniciar el formulario, 'seleccionamos la hoja con los datos HOLA.Select 'Seleccionamos la celda B5 Range("G6").Select 'Vamos a llenar dinámicamente el combobox 'con los nombres de los artículos, hasta 'encontrar una fila vacía Do While Not IsEmpty(ActiveCell) 'ponemos el nombre del producto ComboBox2.AddItem ActiveCell.Value 'bajamos una fila ActiveCell.Offset(1, 0).Select Loop ActiveCell.ComboBox1 End Sub
Private Sub CommandButton1_Click() 'Desprotegemos la hoja ActiveSheet.Unprotect 'Miramos en qué fila está el producto 'seleccionado en el ComboBox, y le sumaremos '4 porque empezamos los productos en la fila '5 (celda B5). Sumaremos también un 1, porque 'los elementos del combobox empiezan a numerarse 'desde cero. Con lo cual sumaremos 4 + 1 = 5. 'Seleccionaremos esa fila, de la columna B, es 'decir, de la columna 2 (el producto) Cells(ComboBox1.ListIndex + 6, 1).Select 'grabamos los datos modificados 'comenzando con la cantidad ActiveCell.Offset(0, 1) = CDbl(TextBox2) 'el precio unitario ActiveCell.Offset(0, 2) = CDbl(TextBox3) 'y ahora el precio total ActiveCell.Offset(0, 3) = CDbl(TextBox4)
'limpiamos los datos ComboBox1.Clear TextBox2 = "" TextBox3 = "" TextBox4 = ""
'ponemos el focus en el TextBox1 ComboBox1.SetFocus 'protegemos la hoja ActiveSheet.Protect
End Sub
Private Sub CommandButton2_Click() Unload UserForm2 End Sub
Private Sub CommandButton3_Click() Cells.Find(What:=ComboBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate 'cargamos los datos correspondientes 'al producto elegido TextBox2 = ActiveCell.Offset(0, 1) TextBox3 = ActiveCell.Offset(0, 2) TextBox4 = ActiveCell.Offset(0, 3)
End Sub
Private Sub UserForm_Click()
End Sub