Visual Basic para Aplicaciones - COMO REALIZAR BUSQUEDAS POR RANGO DE FECHAS

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Andres
Val: 26
Ha aumentado su posición en 3 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

COMO REALIZAR BUSQUEDAS POR RANGO DE FECHAS

Publicado por Andres (14 intervenciones) el 13/02/2019 16:40:36
Buenos días.

1. En el Userform fmr_VerReg. Necesito buscar un rango de datos por ejemplo, la fecha: desde 1997 hasta 2018, ¿cómo lo haría?
2. Me da un error en el ListBox. Cuando busco un Nº de Gaceta y también me quita dos campos en el ListBox
POR FAVOR ALGUIEN QUE ME AYUDE
ANEXO APLICATIVO EN VISUAL BASIC PARA EXCEL.

Gracias...
Andres Alvarez
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

COMO REALIZAR BUSQUEDAS POR RANGO DE FECHAS

Publicado por Antoni Masana (498 intervenciones) el 14/02/2019 12:57:44
Lo de buscar el rango de fecha aun no he llegado.

Veo un problema, bueno uno no varios, a la hora de buscar la gaceta:

- No veo el numero de gaceta que está escribiendo, puede ser problema mío
- Cuando carga el ListBox la primera vez usa una forma y la segunda vez otra muy distinta y es en esta segunda donde veo el problema.
Hay dos problema, en tu código faltan añidir los 4 últimos campos y ademas los dos primeros los acepta y los dos últimos dan error.
De la forma de elemento a elemento solo se pueden llenar 10 columnas pero hay otras formas.

Ver Código adjunto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Private Sub Txt_Numgaceta_Change()
    Dim NumDatos As String, i As Integer, Tabla() As String, A As Integer
 
    ' ---&--- Contador de lineas
 
    NumDatos = Hoja2.Range("A" & Rows.Count).End(xlUp).Row
 
    ' ---&--- Detiene el contador de lineas
 
    Hoja2.AutoFilterMode = False
 
    ' ---&--- Limpia el listbox
 
    Me.Buscar_List = Clear
    Me.Buscar_List.RowSource = Clear
 
    ' ---&--- Cuento los elementos de la tabla
 
    i = 0
    For nFila = 2 To NumDatos
        Txt_Numgact = Hoja2.Cells(nFila, 6).Value
        If UCase(Txt_Numgact) Like "*" & UCase(Me.Txt_Numgaceta.Value) & "*" Then
           i = i + 1
        End If
    Next
 
    ReDim Tabla(i, 14): i = 0
 
    ' ---&--- Relleno la tabla
 
    For nFila = 2 To NumDatos
        Txt_Numgact = Hoja2.Cells(nFila, 6).Value
        If UCase(Txt_Numgact) Like "*" & UCase(Me.Txt_Numgaceta.Value) & "*" Then
            For A = 1 To 14
                Tabla(i, A - 1) = Hoja2.Cells(nFila, A).Value
            Next
            i = i + 1
        End If
     Next
 
     ' ---&--- Cargo el ListBox
 
     Me.Buscar_List.List = Tabla()
End Sub


En alguna partes del código veo que haces referencia a la Hoja BDBIBLIOT como Hoja2. para mi gusto es mejor hacer referencia al nombre externo de la hoja. Si tuvieses que abrir el libro en un Excel en otro idioma por ejemplo en ingles Hoja2 se convierte en Sheet2 y la macro deja de funcionar, en cambio DBBIBLIOT se seguida llamando igual.


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres
Val: 26
Ha aumentado su posición en 3 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

COMO REALIZAR BUSQUEDAS POR RANGO DE FECHAS

Publicado por Andres (14 intervenciones) el 14/02/2019 18:00:21
Gracias Masana por las observaciones y por la colaboración.
Le coloque en algunas rutinas Hoja2 porque cuando coloco BDBIBLIOT en esa parte del código me da error y no se porque.

y otra cosa. ¿Como podría unificar los códigos para que no redunden y se ejecuten con mayor rapidez? Porque doy cuenta que tu código es mas sencillo y se ejecuta a la perfección.
Y estoy realizando unas pantallas de ingreso y presentación del SOFTWARE con solicitud de contraseña y un menú pero no me resulta del todo bien. Me da error modal.

Si tu vez el error indícame por favor...
Gracias
Andrés Álvarez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar