UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1RESUELTO Más de 10 columnas en VBA el 17/06/16, 01:26 pm

maober


Buen día he tenido unos problemas con el siguiente código:

Private Sub btn_Buscar_Click()


        If Me.txt_Buscar.Value = Empty Then
            MsgBox "Escriba un registro para buscar"
            Me.ListBox1.Clear
            Me.txt_Buscar.SetFocus
            Exit Sub
        End If

Me.ListBox1.Clear

items = Range("Tabla1").CurrentRegion.Rows.Count
        For i = 2 To items
            If LCase(Cells(i, 1).Value) Like "*" & LCase(Me.txt_Buscar.Value) & "*" Then
                Me.ListBox1.AddItem Cells(i, 1)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, 2)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, 3)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, 4)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, 5)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Cells(i, 6)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = Cells(i, 7)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = Cells(i, Cool
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, Cool = Cells(i, 9)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = Cells(i, 10)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = Cells(i, 11)
              
Por favor no me salen mas de las 10 comunas!

2RESUELTO Re: Más de 10 columnas en VBA el 17/06/16, 08:27 pm

tyno


Hola maober. 
Si estas intentando cargar un control ListBox por medio del método AddItem entonces no vas a poder cargar más de 10 columnas, ese es el limite y no hay forma que por este medio se puedan asignar mas columnas. Ahora si utilizas la propiedad RowSource entonces si se pueden visualizar decenas de columnas, creería cuantas columnas tenga Excel.

Saludos

3RESUELTO Re: Más de 10 columnas en VBA el 17/06/16, 11:14 pm

Igtelo


Hola Maoeber / Tyno un abrazo.

Les comento que si se puede cargar más de 10 columnas con AddItem, dejo ejemplo para 20 columnas.

También dejo enlace con RowSource el cual coincido con tyno que es mucho más práctico.

http://www.universoexcelforo.com/t1561-listbox-con-mas-de-10-columnas-aporte


Saludos
Ignacio Téllez
Archivos
Maober-Listbox más de 10 columnas .xlsm
No tienes los permisos para descargar los archivos.
(25 KB)

4RESUELTO Re: Más de 10 columnas en VBA el 18/06/16, 12:30 am

tyno


Genial Nacho.
Viví toda mi vida engañado.
El secreto esta en este array:
.List = [A1:T1].Value

Sin eso el limite si es de 10 columnas. Que interesante, siempre se aprende algo nuevo.

Saludos

5RESUELTO Re: Más de 10 columnas en VBA el 18/06/16, 01:31 am

jhon1904


Hola Maober, Nacho y tyno un abrazo

le traigo una segunda opción que es manejando un listwiev espero te guste y cual opcion que escoge te funcionara.


saludos
Archivos
Maober-Listbox más de 10 columnas .xlsm
No tienes los permisos para descargar los archivos.
(20 KB)

6RESUELTO Más de 10 Columnas en VBA "Urgente" el 18/06/16, 08:19 pm

maober


Hola amigos muchas gracias por su ayuda, y sus valiosos aportes, soy muy nuevo en esto de VBA; para no molestar más me podrían indicar en donde pongo el código, para que salga más de 10 columnas y los encabezados, agradecería su aporte, muchas gracias de ante mano.

anexo mi codigo
Archivos
codigo-maober.txt
este es el código
No tienes los permisos para descargar los archivos.
(12 KB)

7RESUELTO Re: Más de 10 columnas en VBA el 19/06/16, 12:29 pm

tyno


Hola moaber.
Paso un archivo de ejemplo donde he utilizado el código que has subido en el txt, para que veas como se aplica. 
En realidad tu cuadro de lista solo ocupa 10 columnas, pero para rellenar dicho cuadro de lista el código que utiliza (el que has pasado) para buscar  busca los datos entre 11 columnas de una tabla, es decir, cuando ingresas un dato a buscar en el cuadro de texto la macro va a ir buscando el dato hasta encontrar todas los coincidencias en las primeras 11 columnas de la tabla. Los datos son buscados de forma completa o parcial.

Saludos
Archivos
ejemplo buscar cuadro de lista.xlsm
No tienes los permisos para descargar los archivos.
(27 KB)

8RESUELTO Más de 10 columnas en VBA el 19/06/16, 10:50 pm

maober


Hola amigo, muchas gracias por responder y por tu gran esfuerzo, enserio gracias, pero aun sigo teniendo dicho problema, por que mi archivo de excel tiene 15 columnas y así como tu me lo enviaste siguen saliendo 10 no más, no se como hacerlo, por favor ayúdame y si no es mucha molestia, para que salgan los encabezados como se hace...

9RESUELTO Más de 10 columnas en VBA el 19/06/16, 10:56 pm

maober


Amigo algo que también pasa es que si te fijas, en el que me enviaste, de la nueve pasa a la fila 11

10RESUELTO Re: Más de 10 columnas en VBA el 20/06/16, 12:36 am

tyno


Hola.
Así es, lo que sucede es que se esta asignando dos veces un valor a la columna 9 del cuadro de lista:
                Me.ListBox1.AddItem Cells(i, 1)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, 2)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, 3)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, 4)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, 5)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Cells(i, 6)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = Cells(i, 7)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = Cells(i,  8 )
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8 ) = Cells(i, 9)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = Cells(i, 10)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = Cells(i, 11)


En lo que he remarcado con rojo se puede ver que a la columna 9 primero se le asigna el valor de la columna 10 de la tabla de la Hoja Excel y luego se le asigna el valor de la columna 11 de la misma tabla. En realidad no se porque establecieron esto así en ese código, pero me hace suponer que optaron por que si el dato buscado no llegara a estar en la columna 10 de la tabla entonces que se busque en la columna 11, claro que si el dato buscado esta tanto en la columna 10 como en la columna 11 entonces termina por imponerse la columna 11, o bien es un error.
En tu archivo real ¿es necesario que busques un dato en distintas columnas o simplemente buscas un dato por ejemplo en la columna A y esperas que esto te devuelva toda la fila de la tabla de ese dato? porque si es así se puede replantear ese código de búsqueda.

11RESUELTO Re: Más de 10 columnas en VBA el 20/06/16, 01:09 pm

maober


Hola amigo, no ese código lo puse yo así por que estaba probando a ver como me funcionaba pero así no debe ir, yo tengo 15 columnas en mi archivo, y necesito que las busque, pero solo me bota 10, ese es el error q yo tengo!

12RESUELTO Re: Más de 10 columnas en VBA el 20/06/16, 02:39 pm

tyno


Bueno, la solución al problema de ver mas columnas en un cuadro de lista la  dio Igtelo. Es cuestión de que veas la forma de adaptarlo a tu código,lo cual es bastante sencillo.
De todas formas subo un archivo de ejemplo. Este tiene otro tipo de código que creo te puede servir. 
En este caso la base de datos contiene 13 columnas por lo que el cuadro de lista devuelve también 13 columnas.
La macro busca un dato de forma parcial o completa por columna, si el dato buscado no aparece en una columna pasa a la siguiente y si lo encuentra lo carga en el cuadro de lista, ahora si el dato buscado se encuentra en varias columnas entonces la macro va a traer los datos solamente en base a la primer columna donde se hallen ¿no se si esto sirve para tu caso? establecí esto porque si el dato buscado se encuentra en mas de una columna pero a su vez se encuentra en una misma fila entonces en el cuadro de lista se va a repetir la misma fila según la cantidad de columnas donde éste se encuentre.

Saludos
Archivos
ejemplo buscar cuadro de lista 3.zip
No tienes los permisos para descargar los archivos.
(128 KB)

13RESUELTO Re: Más de 10 columnas en VBA el 20/06/16, 03:57 pm

maober


gracias amigo muchas gracias, te lo agardezco, para las 15 solo seria cambiar el 13 por el 15 y ya?

y en cuestión de que al salir el resultado aparezca el titulo de cabecera eso como seria, eso seria mi ultima pregunta.... muchas gracias por tu ayuda

14RESUELTO Re: Más de 10 columnas en VBA el 20/06/16, 04:36 pm

tyno


Claro. Para más columnas hay que cambiar ese valor y también el rango .list(a1:m1).value.
Para agregar rótulos a las columnas hay que agregar etiquetas (label) por encima del cuadro de lista con el respectivo nombre y ancho de cada columna, paro también hay diseñar el cuadro de lista de manera que se vean todas las columnas 
Saludos

15RESUELTO Re: Más de 10 columnas en VBA el 20/06/16, 06:00 pm

maober


Hola imigo ya he cambiado el columncount=15....List=[a5:m5]...
No se qu3 mas cambiarle eso le hago pero a un me sigue arrojando solo 13. Por fa ayudame. Aun ando colgado... es para un proyecto de la U... por fa ayudame con las 16

16RESUELTO Re: Más de 10 columnas en VBA el 20/06/16, 07:10 pm

tyno


Bueno,  donde dice 13 es cambiar por 15 todas las veces que se encuentre este valor.
Otra cosa seria también extender el rango en la propiedad .List(a5:m5).Value a .List(a5:o5).Value, la columna M es la columna 13 y la O es la 15 y si van a ser mas columnas entonces modificar ese rango conforme la cantidad de columnas que comprendan nuestros datos.
También en la propiedad .ColumnWidths = "30;160;160;160;50;50;50;70;80;30;70;30;30" hay que agregar el valor para dos columnas mas:
.ColumnWidths = "30;160;160;160;50;50;50;70;80;30;70;30;30;X;X"
Con eso tendría que andar.
Saludos

17RESUELTO Re: Más de 10 columnas en VBA el 21/06/16, 12:35 pm

maober


amigo muchas gracias por tu tiempo y gran ayuda, de verdad si me sirvió, no soy ninguna experto en VBA, tu me sacaste del atolladero jejeje, mi ultima pregunta seria, como es eso de las etiquetas label, me podrías dar el ejemplo de solo una por ejemplo que diga "nombre"... Muchas gracias

18RESUELTO Re: Más de 10 columnas en VBA el 21/06/16, 01:02 pm

maober


yo he intentado con helath column=true
pero solo me sale la división en el cuadro de texto, no los títulos

19RESUELTO Re: Más de 10 columnas en VBA el 21/06/16, 01:08 pm

maober


que pena responderte por intervalos, ya probé las etiquetas label pero como son 15 columnas al correr para mirar los otros datos se corren y por ejemplo una fecha queda debajo de un nombre

20RESUELTO Re: Más de 10 columnas en VBA el 21/06/16, 01:56 pm

maober


hey amigo, ya en este punto donde la gratitud ya es poca, te envió mi archivo original, hasta ahí voy, con tus consejos, lo único que me falta es que aparezcan los encabezados, ahí los hice como tu dijiste con label, pero ps mira tu mismo como queda y hay una imagen en blanco es es para poner un logo de nuestra empresa ficticia, pero tampoco se como hacerlo, mira agradezco tu ayuda, de verdad ya seria lo ultimo, ya que mañana debo entregar ese trabajo en la universidad.... gracias
Archivos
Conductores Serescoop.xlsm
archivo orginal
No tienes los permisos para descargar los archivos.
(54 KB)

21RESUELTO Re: Más de 10 columnas en VBA el 21/06/16, 03:32 pm

tyno


Paso el archivo con las modificaciones del formulario donde he adaptado las etiquetas al ancho de las columnas. 
En estos casos no queda otra que ir ajustando el ancho de las columnas en base al tipo de datos que van a contener, es decir, si una columna va a tener un dato como ser la edad entonces sabemos que esto no necesita que su columna sea muy ancha. Luego adaptamos el ancho de las etiquetas al ancho de sus respectivas columnas.
Cuando se tienen tantas columnas donde se necesita ver el rotulo conviene utilizar un Listview.
El ancho de las columnas quedó directamente establecido en las propiedades del cuadro de lista como se puede ver en el editor de macros.
Por el tema del logo  para el cuadro de imagen que tienes , esto seleccionas el cuadro de imagen y en las propiedades en Picture le haces click y aparece el explorador para buscar la imagen que deseamos aplicar.
Saludos
Archivos
Conductores Serescoop.zip
No tienes los permisos para descargar los archivos.
(49 KB)

22RESUELTO Re: Más de 10 columnas en VBA el 24/06/16, 11:35 am

Igtelo


Hola a todos.

A falta de respuesta de Maober lo doy por resuelto. Tyno, gracias por tu solución y tiempo.

Saludos
 Ignacio Téllez

23RESUELTO Re: Más de 10 columnas en VBA el 24/06/16, 11:40 am

maober


Muchas gracias a todos por su colaboracion, me salio perfecto muy oportuno y util, especialmente a tyno gracias amigo sos un genio del excel

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.