Jump to content
Manuyes

seleccionar mes en combobox y cargar fila en listbox

Recommended Posts

Hola, se que esto esta repetido hasta las saciedad, hace poco @Antoni resolvió algo similar a @Visory aunque he intentado adaptarlo no he sido capaz...

Me gustaría diseñar una pequeña base de entrenamientos, donde poder guardar los entrenamientos a realizar y que me mostrara los entrenamientos del mes o de meses anteriores, el caso es que me surgen muchas dudas. Había pensado en realizar un combobox en el que pudiera  seleccionar un mes y me mostrara en un listbox los entrenamientos para ese mes, pero la primera duda es si cargo los meses "Enero,Febrero... diciembre" como le digo que busque en mi columna B si el formato dd/mm/yyyy. 

Se podría mostrar un calendario o algo similar que marcase que días hay entreneamientos.

Quizas haya algo parecido en el foro, por donde poder guiarme, pero no he conseguido encontarlo.

Entrenamientos.xlsm

Share this post


Link to post
Share on other sites

Hola @Manuyes, puedes colocar este código en el formulario:

v

Private Sub ComboMeses_Change()
lista
End Sub

Private Sub UserForm_Initialize()
For x = 2017 To 2020: ComboAños.AddItem x: Next
For x = 1 To 12: ComboMeses.AddItem UCase(MonthName(x)): Next
End Sub

Private Sub lista(): On Error Resume Next
Me.ListBox1.Clear

For Each cel In Range([A2], [A1].End(xlDown))

If CDbl(Year(cel)) = CDbl(Me.ComboAños) And CDbl(Month(cel)) = CDbl(Me.ComboMeses.ListIndex + 1) Then
Me.ListBox1.AddItem CDate(cel)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = cel.Offset(0, 1)
End If
Next

End Sub

Comentas.

Saludos.

Share this post


Link to post
Share on other sites
Hace 2 horas, Manuyes dijo:

Hola, se que esto esta repetido hasta las saciedad, hace poco @Antoni resolvió algo similar a @Visory aunque he intentado adaptarlo no he sido capaz...

Me gustaría diseñar una pequeña base de entrenamientos, donde poder guardar los entrenamientos a realizar y que me mostrara los entrenamientos del mes o de meses anteriores, el caso es que me surgen muchas dudas. Había pensado en realizar un combobox en el que pudiera  seleccionar un mes y me mostrara en un listbox los entrenamientos para ese mes, pero la primera duda es si cargo los meses "Enero,Febrero... diciembre" como le digo que busque en mi columna B si el formato dd/mm/yyyy. 

Se podría mostrar un calendario o algo similar que marcase que días hay entrenamientos.

Hola @Manuyes y @Riddle. Parece que tenemos aquí a un corredor...

Ignoro que tan especializado es lo que quieres hacer (o tal vez sea por aprender a programarlo), pero si todo se reduce a filtrar entrenamientos por fecha, con aplicar un filtro, este mismo te da filtros preestablecidos, mismos que podrías aplicar y utilizar el grabador para obtener el código, ya después puedes investigar el como codificar el seleccionar las celdas filtradas y cargarlas al listbox.
como-filtrar-fechas-en-excel-02.png

Saludos!

Share this post


Link to post
Share on other sites

Muchas Gracias @Riddle, funcionaba perfectamente, salvo que solo cargaba una columna, pero lo modifique para que mostrara dos.

Muchas gracias también @digitalBoy, si soy un corredeor, aunque es por salud.... pero de vez en cuando me gusta participar en alguna competición... En cuanto a lo de la base para seguir mis entrenamientos  lo hago por curiosidad e intentar aprender, por eso me pego con cosas básicas, los filtros si sabia aplicarlos, aunque no se me ocurrió usar la grabadora, la verdad es que la he usado poco, pero intentare usarla la próxima vez antes.

En cuanto al gran @Antoni, que decir... Lo primero muchismas gracias por un poco de tu tiempo, no deja de sorprenderme todo lo que haces (sin ofender a nadie, que aquí hay muchos expertos). Aunque me gustaría ver lo que me mandas, cuando intento abrirlo me dice "error en el método 'Rows' de objeto ' _global' " no se que puede ser, si me pudieseis decir lo que es. 

Lo dicho gracias a todos

 

Share this post


Link to post
Share on other sites

He podido verlo "IMPRESIONANTE".

Lo dicho, no deja de sorprenderme, señor @Antoni, me da miedo hasta tocarlo, no sea que se rompa....

Voy a intentar que sea un poco mas grande el listBox, una pregunta, por rizar el rizo, podría hacerse que imprimiera lo que muestra el formulario (mes y entrenamientos)

De nuevo mil gracias. 

 

Share this post


Link to post
Share on other sites
En 6/12/2017 at 14:52 , Manuyes dijo:

podría hacerse que imprimiera lo que muestra el formulario (mes y entrenamientos)

Agrega un botón y utiliza esto

On Error Resume Next
With Me.Entrenamiento
    Hoja2.Range("A1").CurrentRegion.Offset(1).ClearContents
    vf = .ListCount: vc = .ColumnCount
    Hoja2.Range("A2").Resize(vf, vc) = .List
    Hoja2.PrintOut
End With
On Error GoTo 0

 

Saludos a todos 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




  • Posts

    • Hola buenas noches, Escribo porque estoy haciendo una macro la cual la conecto con una base de datos en access y me ha surgido un problema. Tengo un formulario de reporte con un listbox multiselect donde me gustaría que los datos seleccionados son los que me busque en mi base de datos. La pregunta es cual sería el código de SQL para que me traiga las filas seleccionadas del listbox? Mi base de datos en access sólo tiene una tabla llamada "Base" Necesito que me traiga los datos de las columnas seleccionadas de: Nombre, Pais y Peso. Como sería la consulta SQL? SQL = "Select Nombre, Pais, Peso" & _             " FROM Base"      Cual sería el código para decirle de las filas seleccionadas? Pueden ser 1, 2, 5, 10, etc.. Muchas gracias espero alguien me pueda ayudar.  
    • Saludos compañeros,tengo una tabla dinamica con algunas medidas,una de ellas devuelve el ultimo vendedor que tuvo cierto cliente,el caso es que cuando filtro por vendedor,efectivamente muestra el vendedor,pero sigue mostrando los clientes que antes atendia pero que ya no,solo que en la columna ult vendedor queda la celda vacia,lo que me indica que ese cliente lo tiene actualmente otro vendedor,lo que deseo es que cuando se realice el filtro solo aparezca el vendedor con su cliente actual,sin celdas en blanco en la columna ultvendedor,en el ejemplo adjunto hay mas aclaratorias.tengo otras preguntas que estan relacionadas con el mismo archivo pero no se si es posible hacer varias preguntas en u mismo post,la otra pregunta es como puedo meter en un slicer una medida para filtrar por esa medida,en la columna estatus tengo el estatus de activo,down y bajada quiero un slicer que cuando selecione lost me aparezcan solo los clientes perdidos por ejemplo,y finalmente como puedo hacer un conteo de los clientes con los diferentes estatus por vendedor para poder hacer luego un analisis de cuantos clientes perdidos,activos o en bajada tienen cada vendedor,si debo hacer estas preguntas en otro post me disculpo y lo hare seguro,volvemos solo a la primera pregunta,si no hay lio en responder las otras preguntas se los agradezco.saludos cordiales mis estimados Maestro de pedidos 1.2.xlsx
    • Hola @Antoni, muchas gracias por la respuesta, funciona bien, pero me di cuenta de algo que tal vez no empleé término correcto. Me estoy dando cuenta que si el valor del MONTO TOTAL reflejado en la columna J varía por modificaciones que se haga en la información. El valor que se copió en la hoja CONTROL GENERAL no se actualiza. Creo que empleé mal el término copiar como valor. Debería actualizarse si CONTROL1 se modifica. Así se mantiene actualizada la información en caso de cambios. Agradecido de antemano y disculpa no haberme expresado bien.  Gracias
    • Hola, Revisa el archivo a ver si te sirve. Saludos.  Prueba.xlsx
    • Sustituye la macro por: Sub Copiar() Dim SiNo As Range, Fila As Long With ActiveSheet Set SiNo = .Range("J" & Rows.Count).End(xlUp) If SiNo = "SI" Then Fila = Hoja1.Range("A" & Rows.Count).End(xlUp).Row + 1 Hoja1.Range("A" & Fila) = .Range("A3") Hoja1.Range("F" & Fila) = SiNo.Offset(-3) Hoja1.Select Hoja1.Range("D" & Fila).Select End If End With End Sub  
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy