Saltar al contenido

Formato fecha de un combobox en un listbox


edulolo

Recommended Posts

publicado

hola, me llamo edu y tengo un par de problemas con listbox, que modifique de otro compañero del foro (soy nuevo en esto de la programación), cuando intento filtrar por fecha en el combobox me sale un formato de números y después los combobox no puedo filtrar escribiendo, solo me deja la opción del despegable

agradezco cualquier ayuda

 

BD GENERAL 3 - .xlsm

publicado

Hola

En el ComboBox8, solo agrega el formato de fecha de este modo:

Private Sub LlenarCombos(Combobox As Control)
columna = Int(Mid(Combobox.Name, 9))
With ListBox1
 Combobox.Clear
 For fila = 0 To .ListCount - 1
   If Not .List(fila, columna) = "" Then
      Combobox = Trim(.List(fila, columna))
      If Combobox.ListIndex = -1 Then Combobox.AddItem Format(.List(fila, columna), "dd/mm/yyyy")'<---Asi
   End If
 Next
End With
Combobox = ""
End Sub

...y comentas si te sirve.

P. D. para que el Formulario se muestre del tamaño adecuado, puedes agregar estas lineas en el evento Initialize de Form. Ejemplo:

    With Me
        .Width = Application.Width 'Ajusta el ancho de la pantalla
        .Height = Application.Height 'Ajusta al alto de pantalla
    End With

Saludos.

publicado

hola de nuevo

en el combobox ya me sale el formato fecha, pero no filtra por la fecha elegida, en la segunda parte queda mejor con la solución que me has dado a pantalla completa, de todas maneras en la hoja de problemas te explico las dudas que tengo y no se resolver

te vuelvo a mandar el archivo con los cambios que me has pasado

un saludo

BD GENERAL 3 - .xlsm

  • 2 weeks later...
publicado

Hola @edulolo

Lo que sucede es que usas un procedimiento Sub para consultar como único sin discriminar el criterio y(o formato tenga al campo de criterio.

Private Sub ComúnComboBox(Combobox As Control)
Dim Rango As Range
If Saltar = True Then Exit Sub
Saltar = True
columna = Int(Mid(Combobox.Name, 9)) + 1
ReDim Preserve Datos(12)
Datos(columna - 1) = Combobox
For fila = 2 To Trabajo.Range("A" & Rows.Count).End(xlUp).Row
   If Not CStr(Trabajo.Cells(fila, columna)) = Combobox.Text Then
      If Rango Is Nothing Then
         Set Rango = Trabajo.Rows(fila)
      Else
         Set Rango = Union(Rango, Trabajo.Rows(fila))
      End If
   End If
Next
If Not Rango Is Nothing Then Rango.Delete
For x = 1 To 11: LlenarCombos Controls("ComboBox" & x): Next
For x = 1 To 11: Controls("ComboBox" & x) = Datos(x): Next
Saltar = False
End Sub

Por otro lado cuando filtras, el Combobox que usaste deja solo el campo seleccionado y no deja la lista tal y como debería estar para una nueva consulta.

Lo que puedo recomendarte es realizar Filtros independientes.

Si tengo un momento, te daré un ejemplo y luego tu lo adaptas.

Saludos.

publicado

En este Tema hay un ejemplo que espero puedas evaluar.

De igual modo te dejo el archivo para que te orientes mas.

Explico un poco:

El filtro se hace en base a las columnas. Es decir; inicia con la columna 1. Si no aparecen coincidencias, entonces pasa a la siguiente columna y así sucesivamente.

Si lo ves, puede ser útil porque no necesitaría crear listado, si no por la consulta en si.

Saludos.

Ayuda Excel-UserFormconFiltroenListbox2.xlsm

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.