RE:centralizar Datos en Excel
Este es el código que utilizo para exportar a una hoja Excel
datos desde VisualBASIC:
No necesariamente debes utilizarlos a todos, te lo paso a modo de ejemplo.
'creamos el objeto de excel
Set ApExcel = CreateObject("Excel.application")
'añadimos un hoja nueva
ApExcel.WorkBooks.Add
'ApExcel.WorkBooks.Open "Dist2008Plantilla.xls" Abrimos una planilla existente
ApExcel.Cells(1, 1).Formula = "CODIGO"
ApExcel.Cells(1, 2).Formula = "DETALLE"
ApExcel.Cells(1, 3).Formula = "DOMICILIO"
ApExcel.Cells(1, 4).Formula = "TELEFONO"
ApExcel.Cells(1, 5).Formula = "CELULAR"
ApExcel.Cells(1, 6).Formula = "CONTACTO"
ApExcel.Cells(1, 7).Formula = "E-MAIL"
ApExcel.Cells(1, 8).Formula = "PAGINA WEB"
For i& = 0 To 100
ApExcel.Cells(i& + 2, 1).Formula = "DATO COLUMNA 1"
ApExcel.Cells(i& + 2, 2).Formula = "DATO COLUMNA 2"
ApExcel.Cells(i& + 2, 3).Formula = "DATO COLUMNA 3"
ApExcel.Cells(i& + 2, 4).Formula = "DATO COLUMNA 4"
ApExcel.Cells(i& + 2, 5).Formula = "DATO COLUMNA 5"
ApExcel.Cells(i& + 2, 6).Formula = "DATO COLUMNA 6"
ApExcel.Cells(i& + 2, 7).Formula = "DATO COLUMNA 7"
ApExcel.Cells(i& + 2, 8).Formula = "DATO COLUMNA 8"
' Este bloque es para insertar una foto en la celda I
ApExcel.Range("I" + Trim(Str(sw%))).Select
ApExcel.ActiveSheet.Pictures.Insert("Stock06Fotos" + Trim(trp.trcodigo) + ".jpg").Select
ApExcel.ActiveSheet.Application.CommandBars("Task Pane").Visible = False
ApExcel.Selection.ShapeRange.LockAspectRatio = msoTrue
ApExcel.Selection.ShapeRange.Height = 70.87
ApExcel.Selection.ShapeRange.Width = 73#
ApExcel.Selection.ShapeRange.Rotation = 0#
ApExcel.ActiveSheet.Rows(Trim(Str(sw%))).RowHeight = 71
Next
ApExcel.ActiveSheet.Range("A1:H100").Font.Size = 10
ApExcel.ActiveSheet.Range("A1:H100").Font.Name = "Courier New"
ApExcel.ActiveSheet.Range("A1:H100").Font.Bold = True
ApExcel.ActiveSheet.Range("A1:A" + Trim(Str(100))).HorizontalAlignment = 3
ApExcel.ActiveSheet.Range("A1:H" + Trim(Str(100))).Borders.LineStyle = 1
With ApExcel.ActiveSheet
.Range(.Cells(1, 1), .Cells(1, 8)).Interior.Color = vbCyan
.Range(.Cells(1, 1), .Cells(1, 8)).Font.Color = vbBlue
.Range("A1:G" + Trim(Str(100))).Select
.Rows("1").RowHeight = 20
' .Columns("A").ColumnWidth = 10
' .Columns("B").ColumnWidth = 40
' .Columns("C").ColumnWidth = 40
' .Columns("D").ColumnWidth = 18
' .Columns("E").ColumnWidth = 18
' .Columns("F").ColumnWidth = 20
' .Columns("G").ColumnWidth = 24
' .Columns("H").ColumnWidth = 40
.Columns("A:Z").AutoFit ' Ajuste el ancho de columna automaticamente
.Columns("C").NumberFormat = "#,##0.00"
.Columns("D").NumberFormat = "#,##0.00"
.Columns("E").NumberFormat = "#,##0.00"
.Columns("D:F").Hidden = True
End With
ApExcel.Range("G30").Select ' Pongo esta formula en la celda G30
ApExcel.ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-22]C)" ' Pongo en G30 la suma del rango G8 a G27
Close
ApExcel.Visible = True
Set ApExcel = Nothing