Código vb:
Ver original
Public Function cierreaExcel(grilla As MSFlexGrid) As Boolean Dim i As Long, j As Long Dim objExcel As Object Dim objWorkbook As Object On Error Resume Next ' por si se cierra Excel antes de cargar los datos Set objExcel = CreateObject("Excel.Application") objExcel.Visible = False Set objWorkbook = objExcel.Workbooks.Add For i = 0 To grilla.Rows - 1 grilla.Row = i For j = 1 To grilla.Cols - 1 grilla.Col = j If i = 0 Then objWorkbook.ActiveSheet.Cells(i + 1, j + 1).Interior.Color = &H80C0FF objWorkbook.ActiveSheet.Cells(i + 1, j + 1).Font.Bold = True objWorkbook.ActiveSheet.Cells(i + 1, j + 1).Value = grilla.text Else objWorkbook.ActiveSheet.Cells(i + 1, j + 1).Style = "Comma" objWorkbook.ActiveSheet.Cells(i + 1, j + 1).NumberFormat = "_-* #,##0.0_-;-* #,##0.0_-;_-* ""-""??_-;_-@_-" objWorkbook.ActiveSheet.Cells(i + 1, j + 1).NumberFormat = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-" objWorkbook.ActiveSheet.Cells(i + 1, j + 1).NumberFormat = "_-* #,##0_-" objWorkbook.ActiveSheet.Cells(i + 1, j + 1).Interior.Color = &HC0FFFF objWorkbook.ActiveSheet.Cells(i + 1, j + 1).Value = grilla.text End If Next Next objExcel.Cells.Select objExcel.Selection.EntireColumn.AutoFit ' Ancho de columna objWorkbook.ActiveSheet.Range("b1:i59").Borders().LineStyle = 1 objWorkbook.ActiveSheet.Range("A59:i59").Font.Bold = True 'objWorkbook.ActiveSheet.Columns("K:K").ColumnWidth = 13.71 objExcel.Range("b1").Select objExcel.Visible = True objExcel.ActiveWindow.SelectedSheets.PrintPreview ' Previsualizar informe Set objWorkbook = Nothing Set objExcel = Nothing End Function
gracias