Autor
|
Tema: Exportar a EXCEL (Leído 6,769 veces)
|
ka0s
Desconectado
Mensajes: 308
|
Hola gente, encontré un código para poder exportar un Flexgrid a Excel y me funciona perfectamente. El problema es que me gustaría que quede un poco más atractivo con respecto al nombre de las columnas. Busqué propiedades para cambiar el formato y esas cosas pero la verdad no encontré nada. Private Sub GridAExcel() Dim oExcel As Excel.Application Dim i As Integer, j As Integer Screen.MousePointer = vbHourglass Set oExcel = CreateObject("Excel.Application") oExcel.Workbooks.Add With grilla For i = 0 To .Rows - 1 For j = 0 To .Cols - 1 oExcel.Cells(i + 1, j + 1) = .TextMatrix(i, j) Next j Next i End With oExcel.Visible = True Screen.MousePointer = vbDefault End Sub Private Sub Command1_Click() Call GridAExcel End Sub
Ese es el código que uso y así es como me lo exporta a EXCEL y queda horrible. Lo que me gustaría hacer es centrar todo y ponerle negrita y otro fondo a las columnas. Espero que me puedan dar una mano. Muchas gracias!!!
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Sobre esa planilla de excel que tienes, Herramientas > Macros > Grabar nueva macro, y realiza los cambios que quieras, bordes, negrita, colores, etc, y al final termina la grabación. Luego ve al editor de VBA, Herramientas > Macros > Editor de Visual Basic o ALT+F11, en el explorador de proyectos ve al nuevo MÓDULO que se te ha creado, y ya tendrás código de ejemplo bastante acorde a tu caso Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
ka0s
Desconectado
Mensajes: 308
|
Sobre esa planilla de excel que tienes, Herramientas > Macros > Grabar nueva macro, y realiza los cambios que quieras, bordes, negrita, colores, etc, y al final termina la grabación. Luego ve al editor de VBA, Herramientas > Macros > Editor de Visual Basic o ALT+F11, en el explorador de proyectos ve al nuevo MÓDULO que se te ha creado, y ya tendrás código de ejemplo bastante acorde a tu caso Saludos Gracias por responder Novlucker. Pero igualmente mucho no me sirvió, hice lo que me dijiste pero había cosas que no encontré. Deben tener otro nombre las propiedades o no sé. El VBA lo que me formó a mi fue: Range("A1:J1").Select Range("J1").Activate Selection.Font.Bold = True With Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Range("A2:J3").Select Range("J3").Activate With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Range("A1:J1").Select Range("J1").Activate With Selection.Interior .ColorIndex = 33 .Pattern = xlSolid End With Columns("A:A").ColumnWidth = 4.57 Columns("B:B").ColumnWidth = 15.71 Columns("B:B").ColumnWidth = 18 Columns("C:C").ColumnWidth = 18 Columns("D:D").ColumnWidth = 4.71 Columns("E:E").ColumnWidth = 16.14 Columns("F:F").ColumnWidth = 12.29 Columns("F:F").ColumnWidth = 13 Columns("F:F").ColumnWidth = 13.14 Columns("F:F").ColumnWidth = 13.29 Columns("I:I").ColumnWidth = 12.71 Columns("J:J").ColumnWidth = 23.71 End Sub y cuando quise hacerlo no encontré en el VB HorizontalAlignment, Font bold, entre otras. Así que no sé como puedo hacerlo. Por ahi algo entendi mal, pero no creo. Desde ya muchas gracias!
|
|
|
En línea
|
|
|
|
ka0s
Desconectado
Mensajes: 308
|
Gente, pude poner en negrita. Pero más de eso no pude avanzar. La verdad es rarísimo. No es como los otros componentes que vos agregas y te vas GUIANDO PORQUE EL VB TE VA AYUDANDO A MEDIDA QUE VAS TIPEANDO. En este no te arroja ninguna ayuda y no sabes si lo que escribis está bien o mal :S. La verdad rarísimo. El que sepa poner alguna cosa más me avisa por favor. rivate Sub GridAExcel() Dim Excel As Excel.Application Dim i As Integer, j As Integer Dim Sheet As Object Dim Book As Object Screen.MousePointer = vbHourglass Set Excel = CreateObject("Excel.Application") Set Book = Excel.Workbooks.Add Set Sheet = Book.Worksheets(1) 'INSERTA LOS DATOS DE LA GRILLA EN EL EXCEL With grilla For i = 0 To .Rows - 1 For j = 0 To .Cols - 1 Excel.Cells(i + 1, j + 1) = .TextMatrix(i, j) Next j Next i 'PONE EN NEGRITA Sheet.Range("A1:J1").Font.Bold = True End With Excel.Visible = True Screen.MousePointer = vbDefault End Sub
Saludos!
|
|
|
En línea
|
|
|
|
ka0s
Desconectado
Mensajes: 308
|
Vuelvo a comentar... Finalmente pude lograrlo. Costó pero con esfuerzo se pudo. Parece que hay que aplicarlo de esta manera: Sheet.Range("A1:J1") .Font.Bold = TrueSheet.Range("A1:J1") .HorizontalAlignment = xlCenterSheet.Range("A1:J1") .Interior.ColorIndex = 33Sheet.Range("A1:J1") .Interior.Pattern = xlSolidPara la parte que sigue después del rango, lo saqué con el código de VBA que obtuve antes. Pero la verdad que es rarísimo, como dije antes, es la primera vez que me pasa que el VB no me ayuda cuando voy escribiendo el código o poniendo el . (punto) para que me aparezca la propiedad a utilizar. Les dejo imágen que como va quedando: Muchas gracias igualmente. Cualquier duda, pregunten si no entendieron como usarla.
|
|
« Última modificación: 18 Septiembre 2009, 06:14 am por ka0s »
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Justamente iba a poner eso ... como lo haces por medio del objeto excel.application los with y selection pueden dar problemas. Otra cosa que puede dar problemas también son las constantes, como xlcenter, pero poniendo el valor se arregla, en caso de que te ocurra simplemente te vas al editor de VBA nuevamente y con un msgbox consigues el valor ... msgbox xlcenter Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
ka0s
Desconectado
Mensajes: 308
|
Justamente iba a poner eso ... como lo haces por medio del objeto excel.application los with y selection pueden dar problemas. Otra cosa que puede dar problemas también son las constantes, como xlcenter, pero poniendo el valor se arregla, en caso de que te ocurra simplemente te vas al editor de VBA nuevamente y con un msgbox consigues el valor ... msgbox xlcenter Saludos Sii, más que nada no sabía que lo tenía que hacer (en mi caso) desde sheet.PROPIEDAD. Una vez que encontré eso, descubrí todo ^^. Saludos y gracias Novlucker
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
No se si lo has terminado, pero sugerencia para la próxima ... No es como los otros componentes que vos agregas y te vas GUIANDO PORQUE EL VB TE VA AYUDANDO A MEDIDA QUE VAS TIPEANDO. En este no te arroja ninguna ayuda y no sabes si lo que escribis está bien o mal :S. Para evitar esto ... programa lo que se refiere a la apariencia y demás directamente desde el editor de VBA, luego es cuestión de copiar y pegar Antes había olvidado comentarlo Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con exportar a Excel
.NET (C#, VB.NET, ASP)
|
dark_one88
|
2
|
2,804
|
6 Mayo 2011, 21:59 pm
por dark_one88
|
|
|
Exportar de MS Publisher a Word o a Excel?
Software
|
Shadow
|
0
|
2,143
|
26 Marzo 2012, 09:48 am
por Shadow
|
|
|
exportar a excel
PHP
|
kakashi20
|
4
|
3,749
|
18 Junio 2012, 10:11 am
por robertito_prado
|
|
|
Exportar sólamente un control de una DLL en lugar de exportar la DLL entera
.NET (C#, VB.NET, ASP)
|
Eleкtro
|
5
|
3,822
|
25 Diciembre 2012, 05:36 am
por spiritdead
|
|
|
No puedo exportar una tabla de access 2007 a Excel con VB.NET 2010
.NET (C#, VB.NET, ASP)
|
Yaldabaot
|
1
|
4,990
|
27 Enero 2015, 15:22 pm
por Yaldabaot
|
|