Pasar dato de listbox a celda con doble click

Les consulto como pasar el contenido a la celda h1si hago doble click en un listbox de un formulario. La celda h1 se encuentra en la hoja llamada Indice.

2 Respuestas

Respuesta
1

Prueba con esta macro

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
indice = ListBox1.ListIndex + 1
lista = Application.Transpose(Application.Transpose(ListBox1.List))
col = ListBox1.ColumnCount
For i = 1 To col
    Sheets("indice").Range("h1").Cells(1, i) = lista(indice, i)
Next i
End Sub
Respuesta
1
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Sheets("Indice").[H1] = ListBox1.Value
End Sub

Esto es para un listbox de 1 columna. 

Te recuerdo que los listbox guardan datos en formato texto por lo que si tu lista tiene datos numéricos habrá que convertirlos, con Val, CDbl, o lo que corresponda.

Elsa. Mucho gusto, gracias por tu aporte. Me podrías indicar como quedaría si el contenido del listbox es alfanumérico?

Gracias. 

Supongo que si lo probaste con tu lista ya tendrás la respuesta. Para 'alfanumérico' no hay que hacer ningún cambio.

Y si fuesen datos como por ej, hora o fecha y la col H ya tiene ese formato, tampoco hay que hacer ningún cambio.

En la primer imagen las celdas de col H no tenían formato alguno por eso se ven así:

En la siguiente las celdas H5 y H6 ya tenían su formato de antemano, por eso tampoco hubo que hacer cambios en la instrucción.

Y para establecer el formato al momento del pase, podrías utilizar las siguientes instrucciones:

Sheets("Hoja1").Range("J" & X) = Format(ListBox1.Value, "hh:mm:ss")     'hora

Sheets("Hoja1").Range("J" & X) = CDate(ListBox1.Value)            'fecha

PD) Veo que James te dejó un ejemplo para listas con más de 1 columna. No mencionaste que ese sea tu caso pero quizás el ya tenga antecedentes de tu libro, en ese caso

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas