En la hoja 2 tengo mi bd en el fila 1 tengo los encabezados, tengo un combobox en el cual hago una consulta a través de un commandbuton y los resultados me los pone en el listbox Para lo que necesito tu ayuda es para saber como se le dala intruccion para que coloque los encabezados para que se puedan identificar que es cada campo Exel 2007
Modifica la propiedad COLUMNHEADS cambiándola a true dentro de las propiedades del objeto
gracias compañero ya lo hice de esa manera peros solo me saca unos recuadros en la parte superior del listbox y ni tiene los encabezados, la base de datos la tengo en la hoja 2 en la fial 1 de allí quiero que los tome sabes si hay que hacer le alguna otra instrucción? saludos
Primero podríamos mandar los encabezados al listbox para que se queden dentro: activesheet.listbox.listfillrange = "hoja1!a1:h1" (ejemplo de encabezados) Es importante también cambiar el número de columnas en las propiedades de listbox Posteriormente deberíamos ir almacenando los resultados de la consulta mediante la operación additem en el listbox. De esta manera conservamos el encabezado y vamos aumentado los datos nuevos. Un ejemplo: Sub llena_listbox() Range("a2").Select Do While ActiveCell.Value <> "" valor = ActiveCell.Value ActiveSheet.listbox1.AddItem valor ActiveSheet.listbox1.List(fila, 1) = ActiveCell.Offset(0, 1) fila = fila + 1 ActiveCell.Offset(1, 0).Select Loop End Sub
es correcto compañero, la opción de additem si la estoy usando de la manera que me dices en tu repuestos pero donde ya me perdi es donde inserto la intruccion activesheet.listbox.listfillrange = "hoja1!a1:h1" porque el metodo listfillrange no lo encuentro en verdad gracias por tu tiempo y pasiencia saludos
Esa sentencia, entiendo, que debiera estar antes de empezar a llenar el listbox con additem, es decir, una única vez. Por ejemplo en una macro independiente o vinculada a otra pero para ejecutarla solo una vez. sub poner_encabezados() activesheet.listbox.listfillrange = "hoja1!a1:h1" end sub
compañero la verdad ya hasta me da pena has de pesar que soy un verdadero tarugo y si la verdad es que no tengo mucho programando en esto, ya hice la macro y la ejecuto al abrir el archivo con workbook auto_open para que solo se ejecute una sola vez al abrirlo y me manda un error, la verdad entenderé si ya no me quieres ayudar, aun si decides ya no ayudarme calificare con la máxima puntuación por el interés puesto te mando mi código de como lo estoy usando Private Sub CommandButton1_Click() If ComboBox1 = "" Or ComboBox2 = "" Or ComboBox3 = "" Then mensaje = MsgBox("Selecciona Consulta nueva", vbInformation, "Ayuda") ComboBox1.SetFocus Else Hoja2.Activate On Local Error GoTo errores Cells.Find(What:=ComboBox1 & ComboBox2 & ComboBox3, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate errores: If Err.Number = 91 Then mensaje = MsgBox("no se encontraron coincidencias", vbInformation) ComboBox1.SetFocus Else I = 0 ListBox1.AddItem ActiveCell.Value ListBox1.List(I, 0) = ActiveCell.Offset(0, 1) ListBox1.List(I, 2) = ActiveCell.Offset(0, 2) ListBox1.List(I, 3) = ActiveCell.Offset(0, 3) ListBox1.List(I, 4) = ActiveCell.Offset(0, 4) ListBox1.List(I, 5) = ActiveCell.Offset(0, 5) ListBox1.List(I, 6) = ActiveCell.Offset(0, 6) ListBox1.List(I, 7) = ActiveCell.Offset(0, 7) ListBox1.List(I, 8) = ActiveCell.Offset(0, 8) I = I + 1 ActiveCell.Offset(1, 0).Select ComboBox1 = Empty ComboBox2 = Empty ComboBox3 = Empty End If End If End Sub
Jamás pensaré que eres un tarugo, estamos aquí para ayudarnos. A simple visto creo haber visto un error: ListBox1.AddItem ActiveCell.Value ListBox1.List(I, 0) = ActiveCell.Offset(0, 1) Cuando pones additem ya estás completando el primer valor del listbox por lo que entiendo la siguiente sentencia debería ser: ListBox1.List(I, 1) = ActiveCell.Offset(0, 1) Prueba a ver.