Excel - Mi listbox en userform al abrir me muestra 17 columnas y al buscar solo me muestra 10

   
Vista:

Mi listbox en userform al abrir me muestra 17 columnas y al buscar solo me muestra 10

Publicado por Fabian fsandovalfree@hotmail.com (2 intervenciones) el 27/05/2016 05:06:43
Mi problema es que en mi listbox en userform al abrir me muestra correctamente las 17 columnas
al-abrir
Pero al buscar solo me muestra 10 y no he podido solucionarlo
al-buscar
Adjunto codigo en excel
Gracias por su ayuda
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

Mi listbox en userform al abrir me muestra 17 columnas y al buscar solo me muestra 10

Publicado por GMG (105 intervenciones) el 27/05/2016 11:42:08
buenas Fabian;

El fallo lo tienes en el TextBox2_change creo:

Primero comentarte que te has saltado un número en el list, no me acuerdo cual era exactamente, creo que en lugar de
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = b.Cells(i, 10)

tenias Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = b.Cells(i, 10)

y arrastrabas el error.

quedaría así.

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
Private Sub TextBox1_Change()
On Error Resume Next
Set b = Sheets("BaseDatos")
uf = b.Range("b" & Rows.Count).End(xlUp).Row ' seleccina fila
'wc = Mid(uc, InStr(uc, "$") + 1, InStr(2, uc, "$") - 2)
If Trim(TextBox1.Value) = "" Then
     'Me.ListBox1.List() = b.Range("b3:H" & uf).Value
     Me.ListBox1.RowSource = "BaseDatos!b3:R" & uf 'cambio de columna
   Exit Sub
End If
b.AutoFilterMode = False
Me.ListBox1 = Clear
Me.ListBox1.RowSource = Clear
For i = 2 To uf
   strg = b.Cells(i, 5).Value
   If UCase(strg) Like UCase(TextBox1.Value) & "*" Then
       Me.ListBox1.AddItem b.Cells(i, 2)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = b.Cells(i, 3)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Format(b.Cells(i, 4), "hh:mm")
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = b.Cells(i, 5)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = b.Cells(i, 6)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = b.Cells(i, 7)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = b.Cells(i, 8)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = Format(b.Cells(i, 9), "hh:mm")
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = b.Cells(i, 10)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = b.Cells(i, 11)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 10) = b.Cells(i, 12)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 11) = b.Cells(i, 13)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 12) = b.Cells(i, 14)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 13) = b.Cells(i, 15)
       Me.ListBox1.List(Me.ListBox1.ListCount - 1, 14) = b.Cells(i, 16)
 
   End If
Next i
 
Me.ListBox1.ColumnWidths = "30 pt;50 pt;41 pt;110 pt;110 pt;45 pt;50 pt;30 pt;60 pt;110 pt;20 pt;60 pt;35 pt;35 pt;35 pt;60 pt;110 pt"
 
End Sub

Pero te seguirá mostrando 10 valores porque estás utilizando la variable "uf", entiendo que es para contar la última fila, que tienes 10, y para el for necesitas la última columna. es decir que en lugar de contar celdas hacia abajo, has de contar hacia la derecha, para ver cuantos ciclos recorre el for.

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

Mi listbox en userform al abrir me muestra 17 columnas y al buscar solo me muestra 10

Publicado por Fabián Sandoval fsandovalfree@hotmail.com (2 intervenciones) el 27/05/2016 14:31:53
Gracias, yo soy amateur y trato de aprender modificando ejemplos ya corregi el salto, pero sería genial una respuesta con el código de las variables que me de las 17 columnas reparado, de antemano gracias
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