Tengo el Siguiente Código:
En VBA en un Espacio General en el que en cualquier fichero de excel puede ejecutar estas Macros.
Las uso para el trabajo y el objetivo es Migrar este código al Basic de OpenOffice.
Tengo Excel 2007 y OpenOficce 3.2.1 en Windows XP.
Código: Seleccionar todo
Sub FormatearCeldas()
'
' FormatearCeldas Macro
'
' Acceso directo: CTRL+s
'
Cells.Select
Cells.EntireColumn.AutoFit
Range("A:C,D1:E1,F:F").Select
Range("F1").Activate
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Cells.Select
Cells.EntireColumn.AutoFit
Range("A1").Select
End Sub
--------------------------------------
Sub EliminarFilasVacias()
'
' EliminarFilasVacias Macro
'
' Acceso directo: CTRL+w
'
'ocultamos el procedimiento
Application.ScreenUpdating = False
'suprondremos que vamos a inspeccionar 1.000 filas,
'en busca de todas las que haya en blanco
For i = 1 To 65000
'si la celda está vacía...
If ActiveCell = "" Or IsNull(ActiveCell) Then
'nos quedamos con la celda donde estamos
'para volver a ella posteriormente
celda = ActiveCell.Address
'vamos hasta la primera celda a la
'derecha que encontremos, con datos
Selection.End(xlToRight).Select
'si está vacía esa celda
If ActiveCell = "" Or IsNull(ActiveCell) Then
'miramos si a la izquierda hay datos
Selection.End(xlToLeft).Select
'si también está vacía esa celda
If ActiveCell = "" Or IsNull(ActiveCell) Then
'eliminamos la fila
Selection.EntireRow.Delete
'volvemos a la celda donde estábamos
'siempre y cuando no estemos en la fila 1
If ActiveCell.Row <> 1 Then Range(celda).Offset(-1, 0).Select
End If
End If
End If
'pasamos a la siguiente fila
ActiveCell.Offset(1, 0).Select
Next
'mostramos el procedimiento
Application.ScreenUpdating = True
End Sub
Muchas gracias por adelantado.
Editado por el moderador (mauricio) para cambiar el icono de la flama que es para reportar errores. Si no lo has hecho aún por favor lee la Guía de supervivencia