elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Exportar a EXCEL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Exportar a EXCEL  (Leído 6,524 veces)
ka0s


Desconectado Desconectado

Mensajes: 308


Ver Perfil
Exportar a EXCEL
« en: 17 Septiembre 2009, 22:16 pm »

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.

Código
  1. Private Sub GridAExcel()
  2. Dim oExcel As Excel.Application
  3. Dim i As Integer, j As Integer
  4. Screen.MousePointer = vbHourglass
  5.  
  6. Set oExcel = CreateObject("Excel.Application")
  7. oExcel.Workbooks.Add
  8. With grilla
  9.    For i = 0 To .Rows - 1
  10.        For j = 0 To .Cols - 1
  11.            oExcel.Cells(i + 1, j + 1) = .TextMatrix(i, j)
  12.        Next j
  13.    Next i
  14. End With
  15. oExcel.Visible = True
  16. Screen.MousePointer = vbDefault
  17. End Sub
  18.  
  19. Private Sub Command1_Click()
  20. Call GridAExcel
  21. 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 Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Exportar a EXCEL
« Respuesta #1 en: 17 Septiembre 2009, 22:25 pm »

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  :D

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 Desconectado

Mensajes: 308


Ver Perfil
Re: Exportar a EXCEL
« Respuesta #2 en: 18 Septiembre 2009, 00:33 am »

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  :D

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:

Código:
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 Desconectado

Mensajes: 308


Ver Perfil
Re: Exportar a EXCEL
« Respuesta #3 en: 18 Septiembre 2009, 05:50 am »

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.

Código
  1. rivate Sub GridAExcel()
  2. Dim Excel As Excel.Application
  3. Dim i As Integer, j As Integer
  4. Dim Sheet As Object
  5. Dim Book As Object
  6. Screen.MousePointer = vbHourglass
  7.  
  8. Set Excel = CreateObject("Excel.Application")
  9. Set Book = Excel.Workbooks.Add
  10. Set Sheet = Book.Worksheets(1)
  11.  
  12. 'INSERTA LOS DATOS DE LA GRILLA EN EL EXCEL
  13. With grilla
  14.    For i = 0 To .Rows - 1
  15.        For j = 0 To .Cols - 1
  16.            Excel.Cells(i + 1, j + 1) = .TextMatrix(i, j)
  17.        Next j
  18.    Next i
  19. 'PONE EN NEGRITA
  20. Sheet.Range("A1:J1").Font.Bold = True
  21.  
  22. End With
  23.  
  24. Excel.Visible = True
  25. Screen.MousePointer = vbDefault
  26. End Sub
  27.  

Saludos!
En línea

ka0s


Desconectado Desconectado

Mensajes: 308


Ver Perfil
Re: Exportar a EXCEL
« Respuesta #4 en: 18 Septiembre 2009, 06:03 am »

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 = True
Sheet.Range("A1:J1").HorizontalAlignment = xlCenter
Sheet.Range("A1:J1").Interior.ColorIndex = 33
Sheet.Range("A1:J1").Interior.Pattern = xlSolid

Para 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 Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Exportar a EXCEL
« Respuesta #5 en: 18 Septiembre 2009, 06:15 am »

Justamente iba a poner eso  :P ... 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 Desconectado

Mensajes: 308


Ver Perfil
Re: Exportar a EXCEL
« Respuesta #6 en: 18 Septiembre 2009, 15:34 pm »

Justamente iba a poner eso  :P ... 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 Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Exportar a EXCEL
« Respuesta #7 en: 18 Septiembre 2009, 15:42 pm »

No se si lo has terminado, pero sugerencia para la próxima ...
Citar
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 :-X

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con exportar a Excel
.NET (C#, VB.NET, ASP)
dark_one88 2 2,540 Último mensaje 6 Mayo 2011, 21:59 pm
por dark_one88
Exportar de MS Publisher a Word o a Excel?
Software
Shadow 0 1,978 Último mensaje 26 Marzo 2012, 09:48 am
por Shadow
exportar a excel
PHP
kakashi20 4 3,557 Último mensaje 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,503 Último mensaje 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,730 Último mensaje 27 Enero 2015, 15:22 pm
por Yaldabaot
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines