Modificar formato de un archivo de excel con macro
Hola que tal Edwinhenao !
Disculpa necesito ayuda sobre macros necesito hacer una macro que haga lo siguiente:
Tengo una aplicación en Java la cual exporta documentos a excel (Reportes) con un formato predefinido (Tipo de letra, Color de letra, tamaño de filas, tamaño de columnas etc... )
1.- La macro se debe aplicar a cualquier archivo de excel.
2.- Si el archivo de excel tiene una hoja o varias hojas debe aplicarse en ambos casos.
3.- Quitar cualquier tipo de formato en cuanto a bordes, color de letra, tamaño de letra, combinación de celdas.
4.- Quitar Columnas vacías y filas vacías, pero necesito que me deje los tamaños de filas y columnas tal cual están de las que si tienen información.
5.- Debe quitarme cualquier imagen.
6.- Y también debe eliminarme las filas en las que se encuentre el siguiente texto "página 1 de"
7.- La cantidad de datos es indefinido puede tener POR cantidad de Datos por Hoja.
He investigado acerca de código que haga lo que quiero pero no he podido resolverlo ya que no tengo muchos conocimientos de visual basic.
Te pido de la manera más atenta que me ayudes por favor! Te lo agradecería infinitamente.
A continuación te dejo el código que he encontrado.
Sub EliminaImagenes()
'macro desarrollada por Elsamatilde 26/05/08
'http://galeon.com/aplicaexcel
N = ActiveSheet.Shapes.Count
For i = N To 1 Step -1
'controla el tipo de objeto y elimina si se trata de Picture
On Error Resume Next
ActiveSheet.Shapes(i).Select
If Left(ActiveSheet.Shapes(i).Name, 7) = "Picture" Or Left(ActiveSheet.Shapes(i).Name, 5) = "Image" Then
ActiveSheet.Shapes(i).Delete
End If
Next
End Sub
Sub EliminarFormato()
Cells.Select
With Selection.Font
.Name = "Arial"
.Size = 10
.Bold = False
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Selection.Hyperlinks.Delete
Selection.RowHeight = 12.75
Cells.EntireColumn.AutoFit
' Fuera controles de formulario
If ActiveSheet.Shapes.Count > 0 Then
ActiveSheet.Shapes.SelectAll
Selection.Delete
End If
' Movemos el foco a la primera celda
Range("A1").Select
End Sub
Sub SuprimirColumnas()
Dim cCount As Integer, c As Integer
Dim DeleteRange As Range
Set DeleteRange = ActiveSheet.Range("A1:D10")
If DeleteRange Is Nothing Then Exit Sub
If DeleteRange.Areas.Count > 1 Then Exit Sub
With DeleteRange
cCount = .Columns.Count
For c = cCount To 1 Step -1
If Application.CountA(.Columns(c)) = 0 _
Then .Columns(c).EntireColumn.Delete
Next c
End With
End Sub
Sub EliminarFilasEnBlanco()
Dim strC As String, lngFila As Long
With Worksheets("Hoja1")
For lngFila = 1 To 10
If WorksheetFunction.CountA(.Range("A" & lngFila & ":" & "CZ" & lngFila)) = 0 _
Then strC = strC & "A" & lngFila & ":" & "CZ" & lngFila & ","
Next lngFila
Application.ScreenUpdating = False
.Range(Left(strC, Len(strC) - 1)).Delete
Application.ScreenUpdating = True
End With
End Sub
PD. De antemano Gracias ! Espero su pronta respuesta!
Disculpa necesito ayuda sobre macros necesito hacer una macro que haga lo siguiente:
Tengo una aplicación en Java la cual exporta documentos a excel (Reportes) con un formato predefinido (Tipo de letra, Color de letra, tamaño de filas, tamaño de columnas etc... )
1.- La macro se debe aplicar a cualquier archivo de excel.
2.- Si el archivo de excel tiene una hoja o varias hojas debe aplicarse en ambos casos.
3.- Quitar cualquier tipo de formato en cuanto a bordes, color de letra, tamaño de letra, combinación de celdas.
4.- Quitar Columnas vacías y filas vacías, pero necesito que me deje los tamaños de filas y columnas tal cual están de las que si tienen información.
5.- Debe quitarme cualquier imagen.
6.- Y también debe eliminarme las filas en las que se encuentre el siguiente texto "página 1 de"
7.- La cantidad de datos es indefinido puede tener POR cantidad de Datos por Hoja.
He investigado acerca de código que haga lo que quiero pero no he podido resolverlo ya que no tengo muchos conocimientos de visual basic.
Te pido de la manera más atenta que me ayudes por favor! Te lo agradecería infinitamente.
A continuación te dejo el código que he encontrado.
Sub EliminaImagenes()
'macro desarrollada por Elsamatilde 26/05/08
'http://galeon.com/aplicaexcel
N = ActiveSheet.Shapes.Count
For i = N To 1 Step -1
'controla el tipo de objeto y elimina si se trata de Picture
On Error Resume Next
ActiveSheet.Shapes(i).Select
If Left(ActiveSheet.Shapes(i).Name, 7) = "Picture" Or Left(ActiveSheet.Shapes(i).Name, 5) = "Image" Then
ActiveSheet.Shapes(i).Delete
End If
Next
End Sub
Sub EliminarFormato()
Cells.Select
With Selection.Font
.Name = "Arial"
.Size = 10
.Bold = False
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Selection.Hyperlinks.Delete
Selection.RowHeight = 12.75
Cells.EntireColumn.AutoFit
' Fuera controles de formulario
If ActiveSheet.Shapes.Count > 0 Then
ActiveSheet.Shapes.SelectAll
Selection.Delete
End If
' Movemos el foco a la primera celda
Range("A1").Select
End Sub
Sub SuprimirColumnas()
Dim cCount As Integer, c As Integer
Dim DeleteRange As Range
Set DeleteRange = ActiveSheet.Range("A1:D10")
If DeleteRange Is Nothing Then Exit Sub
If DeleteRange.Areas.Count > 1 Then Exit Sub
With DeleteRange
cCount = .Columns.Count
For c = cCount To 1 Step -1
If Application.CountA(.Columns(c)) = 0 _
Then .Columns(c).EntireColumn.Delete
Next c
End With
End Sub
Sub EliminarFilasEnBlanco()
Dim strC As String, lngFila As Long
With Worksheets("Hoja1")
For lngFila = 1 To 10
If WorksheetFunction.CountA(.Range("A" & lngFila & ":" & "CZ" & lngFila)) = 0 _
Then strC = strC & "A" & lngFila & ":" & "CZ" & lngFila & ","
Next lngFila
Application.ScreenUpdating = False
.Range(Left(strC, Len(strC) - 1)).Delete
Application.ScreenUpdating = True
End With
End Sub
PD. De antemano Gracias ! Espero su pronta respuesta!
1 Respuesta
Respuesta de edwinhenao
1