Error Propiedad ListIndex en modo Initialize

Estoy trabajando con esta propiedad y en el Change de un ComboBox pude establecerla sin inconveniente aun cuando borro datos de una fila, no así en el modo initialize, que si la primera fila que debe leer es nula (sin datos) los textbox del form que hacen referencia a las hojas que toma datos, aparecen vacíos.

Quisiera pasarte por mail un esquema que gráfica lo que consulto para una mayor comprensión.

Como siempre te estoy muy agradecido.

Abrazo, Daniel.

1 Respuesta

Respuesta
1

H o l a:

En la variable filainicial estoy poniendo la primer fila con datos de la hoja "histórico montaje 2":

Private Sub UserForm_Initialize()  'OK!
Dim TopOffset As Integer
Dim LeftOffset As Integer
    TopOffset = (Application.UsableHeight / 2) - (Me.Height / 2)
    LeftOffset = (Application.UsableWidth / 2) - (Me.Width / 2)
    Me.Top = Application.Top + TopOffset
    Me.Left = Application.Left + LeftOffset
    Sheets("Hbca").Activate
    Dim ultiNC
    ultiNC = Sheets("Historico Montaje2").Range("C" & Rows.Count).End(xlUp).Row
    indi = 1 'para que no ejecute el change del CmbNomCorto
    filainicial = 2
    una = True
    For infNC = 2 To ultiNC
        If Sheets("Historico Montaje2").Range("C" & infNC) <> "" Then
            If una Then
                una = False
                filainicial = infNC
            End If
            CmbNomCorto.AddItem Sheets("Historico Montaje2").Range("C" & infNC)
            CmbNomCorto.List(CmbNomCorto.ListCount - 1, 1) = infNC
        End If
    Next infNC

S a l u d o s

Esto es correcto Dante y de echo aparecen sin problema, pero como ademas se vincula con otras hojas (Historico Montaje e Historico), los datos de éstas son los que ahora no aparecen y aquí esta mi ultima duda. Estoy tratando de adaptar tu resolución a las hojas que faltan pero solo necesito un empujón para darme cuenta como, en la medida que puedas, claro esta.

Un abrazo y muchas gracias

Filainicial empieza con el valor = 2, suponiendo que la primer fila tiene datos, ya que la primer fila a cargarse en el combo es la fila 2.

La variable una = verdadero, es una bandera, siempre empieza con verdadero, solamente la utilizo una vez, por eso el nombre de "una".

La siguiente condición es preguntar si la fila es diferente de vacío. Por ejemplo, si la fila 7 es diferente de vacío, entonces entra al IF.

La siguiente pregunta es si una es igual a verdadero, como la primera vez es verdadero, siempre va a entrar al IF, pero inmediatamente la convierto en false, esto es para que no vuelva a entra, lo que sigue es poner el número de fila en la variable filainicial, no importa cuantas filas después tengan valor, ya pusimos el número de la primera fila en la variable filainicial.

Recomendación, no deberías dejar espacios en blanco en una base de datos, no es práctico y tendrás que modificar todos los programas que tienes para adecuarlos a leer espacios en blanco, mejor, cuando elimines la fila, elimina fila completa para que los registros de abajo se recorran hacia arriba.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas