Copiar listbox a otra listbox vba

juliet -  
 juliet -
Hola,

Quisiera copiar el contenido de un listbox a otro listbox de un userform diferente, con la ayuda de un commandbutton.
Lo que he escrito no funciona. ¿Hay algo que cambiar en la propiedad del listbox? Porque cuando lo hago con textbox funciona.

Private Sub CommandButton1_Click()
Moyennehistorique.ListBox2.Value = Me.ListBox1.Value
End Sub

Muchas gracias

Configuración: Windows XP / Internet Explorer 8.0

8 respuestas

  1. juliet
     
    Gracias por tu rápida respuesta,

    Quiero copiar la lista completa

    Gracias
    1
  2. Krysstof Mensajes publicados 1659 Estado Miembro 295
     
    ""Valor" en una lista desplegable representa únicamente el valor seleccionado.

    ¿Quieres copiar todo el contenido (es decir, la lista completa)? ¿O solo el valor seleccionado?
    0
  3. Krysstof Mensajes publicados 1659 Estado Miembro 295
     
    copia el contenido de listbox1 en listbox2 :

    Dim i As Integer

    For i = 0 To ListBox1.ListCount - 1
    ListBox2.AddItem ListBox1.List(i)
    Next

    diviértete bien
    0
  4. juliet
     
    Gracias, pero no funciona, escribí esto:

    Private Sub CommandButton1_Click()

    Dim i As Integer

    For i = 0 To historiqueetm.ListBox1.ListCount - 1
    Me.ListBox1.AddItem historiqueetm.ListBox1.List(i)
    Next

    End Sub

    Porque son 2 userforms diferentes.

    Muchas gracias
    0
  5. Krysstof Mensajes publicados 1659 Estado Miembro 295
     
    no funciona = ¿qué?

    un mensaje de error, o no hace nada?

    de lo contrario, "Me." no es necesario. ¿y cómo se carga históricoetm?
    0
  6. juliet
     
    Acabo de quitar el Me, pero aún no hay nada.
    No tengo un mensaje de error, pero no pasa nada.

    No entiendo cómo se carga??

    Gracias
    0
  7. Krysstof Mensajes publicados 1659 Estado Miembro 295
     
    euh, bien si no da mensaje de error, eso significa que funciona

    pero tu listbox fuente no contiene ningún valor, cuando pregunto cómo se carga, quiero decir cómo se alimenta el contenido de la listbox?

    todos los botones, listbox, combobox, textbox, etc. son controles.

    en un userform de Excel, debe ser inicializado (cargado, alimentado) para poder leer el contenido de este control.

    la ventaja de Excel es que una vez que un userform está cargado, y que sus controles están inicializados, puedes cerrar este userform y llamar los valores de este userform en otros userforms, pero no se debe permitir que el procedimiento de cierre vacíe los controles, o que la alimentación del control sea dinámica y dependa de otros valores.

    añade
    Msgbox históricoetm.ListBox1.ListCount
    en la primera línea del clic del botón

    te hará un popup con el número de líneas vistas en la listbox.
    si es 0 o -1 eso significa que la listbox no está inicializada.

    tendrás que dar más información sobre cómo abres tus userforms, más código.
    0
  8. juliet
     
    Gracias por estas precisiones,

    he añadido MsgBox históricoetm.ListBox1.ListCount
    y me ha dado 0.

    En tengo un commandbutton en un userform que abre 3 userforms diferentes:
    Private Sub CommandButton1_Click()
    históricoetm.Show
    histórico granulo.Show
    históricos químicos.Show

    Dim i As Integer
    MsgBox históricoetm.ListBox1.ListCount
    For i = 0 To históricoetm.ListBox1.ListCount - 1
    ListBox1.AddItem históricoetm.ListBox1.List(i)
    Next

    End Sub

    En estos 3 userforms, hay una listbox que se alimenta así:

    Private Sub UserForm_activate()
    TextBox1.Enabled = False
    i = 4

    If TextBox1.Value = "SIL9" Then
    Do While Worksheets("análisis químicos").Cells(3, i) <> ""
    If IsNumeric(Worksheets("análisis químicos").Cells(3, i).Value) Then
    ListBox1.AddItem Worksheets("análisis químicos").Cells(2, i).Value
    End If
    i = i + 1
    Loop
    End If
    se repite aproximadamente 70 veces y eso funciona impecablemente
    End Sub

    Al principio no había hecho 3 userforms diferentes, pero escribía directamente en mis listbox, pero al final me dijo procedimiento demasiado largo, por eso llegué a 3 userforms diferentes.

    y en realidad quiero que los datos de mis 3 userforms estén en mis 3 listbox del userform de inicio y me gustaría que estos 3 userforms no aparecieran.

    Espero haber sido claro ...
    Gracias por tu comprensión.
    0