Modificar valores de columnas del listbox al hacer doble click

Me gustaría una vez hemos buscado los datos, cuando aparecieran estos aparecieran en las columnas del listbox, que pudiéramos editar esas columnas situándonos en cada una de ellas y haciendo doble click. Solo hay dos columnas que no deben ser nunca editables con doble click, la del número de fila y la del código (son valores únicos que no deben modificarse).

Así... Si estoy por ejemplo en la columna "Autor" en el listbox y hago doble click sobre un autor específico en el listbox, editaría ese autor pero solo en esa fila de la hoja "Titulos".

Querría poner un botón de "Guardar" para guardar los cambios en la hoja "Titulos" y otro de "Cancelar" por si al final no modifico los valores.

Muchas gracias por la ayuda y el interés prestado, ya no sé cómo agradecértelo.

1 Respuesta

Respuesta
1

H o l a :

Te anexo el código de los controles.

Para elegir el encabezado a modificar necesitas un combobox2, se carga en esta parte:

Private Sub UserForm_Activate()
'Por.Dante Amor
    Set h1 = Sheets("TITULOS")
    For I = 1 To h1.Cells(1, Columns.Count).End(xlToLeft).Column
        ComboBox1.AddItem h1.Cells(1, I)
        If I > 1 Then ComboBox2.AddItem h1.Cells(1, I)
        cad = cad & h1.Cells(1, I).Width + 1 & ";"
    Next
    ComboBox1.SetFocus
    ComboBox2.Enabled = False
    ListBox1.ColumnWidths = cad
End Sub

Cuando modificas el combobox2:

Private Sub ComboBox2_Change()
'Por.Dante Amor
    If ComboBox2 = "" Then Exit Sub
    col = ComboBox2.ListIndex + 1
    TextBox2 = ListBox1.List(ListBox1.ListIndex, col)
    TextBox2.SetFocus
End Sub

Un botón para que el cambio se acepte en el listbox

Private Sub CommandButton2_Click()
'Por.Dante Amor
    Set h = Sheets("FILTRO")
    fila = ListBox1.ListIndex + 2
    col = ComboBox2.ListIndex + 2
    If IsNumeric(TextBox2) Then dato = Val(TextBox2) Else dato = TextBox2
    h.Cells(fila, col) = dato
    ComboBox2 = ""
    TextBox2 = ""
    ComboBox2.SetFocus
End Sub

Un botón para cancelar:

Private Sub CommandButton4_Click()
'Por.Dante Amor
    Unload Me
End Sub

Para el botón de guardar todos los cambios crea una nueva pregunta.

'

S a l u d o s

'

Es justo lo que necesitaba, como siempre ¡genial, perfecto, estupendo!

Lo único que veo a cambiar es que cuando abro el archivo excel me lleva a la hoja "Filtro", en vez de abrirse la hoja "Titulos" que es donde voy a hacer todo el trabajo.

Falta también solo en el listbox que aparezca en nº de fila como primera columna, como te comenté en la pregunta. (No es necesario que aparezca en los combos porque no es un valor ni para buscar ni para modificar, pero sí como información a tener en el lilstbox en cada fila.)

Salvo esto, funciona todo muy bien.

Sobre el botón "Guardar" que me comentas que cree otra pregunta para esto, ya lo hice ayer y te la mandé en privado, se llama "crear botones Guardar y Cancelar para modificar hoja".

Gracias por la ayuda

Selecciona la hoja TITULOS, guarda el archivo y cuando lo abras se abrirá en esa hoja

No veo la pregunta "crear botones", déjala visible y en el texto de la pregunta escribe que va dirigida a Dante Amor

Ok gracias

Pues faltaría lo de que aparezca en el listbox como primera columna el número de fila donde están los valores buscados. Esto lo corregimos en el dam2 pero en los nuevos archivos ha desaparecido la columna nº de fila del listbox.

Gracias y un saludo

Se titula exactamente "crear botones Guardar y Cancelar para modificar hoja"

El sistema de la web no me deja poner en el texto de la pregunta que va dirigida a un experto determinado, me parece.

En el dam2 se cargaba con additem, ahora hay que hacer otras peripecias para que aparezca.

Sigo sin ver la pregunta, si puedes quitarle lo privada o en la misma pregunta creo que puedes mencionarme o recomendarme.

La pregunta no admite más respuestas

Más respuestas relacionadas