Formato celdas excel con vb
Estoy realizando unos informes pero a la hora de pasarlo al excel (desde el vb) lo pego como una matriz pero me gustaría darle formato a varias filas.
Es decir primero le doy el mismo formato a toda la matriz y después a la fila de tienen en la columna A la palabra Cua&n(n es un numero sucesivo) le doy otro formato.
Lo hago de la siguiente manera:
' Le damos formato a toda la matriz
Range("A7").Resize(x2, 55).Select ' asi selecciono toda la matriz: matriz(x2,55)
Selection.Font.Italic = True
With Selection.Font
.Name = "Calibri"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
'PONEMOS DIFERENTE FORMATO A LAS CELDAS QUE SON CUA+num
Range("A7").Select
num = 1
Do While ActiveCell <> Empty
If ActiveCell.Value = "CUA" & num Then
ActiveCell.EntireRow.Select
With Selection.Font
.Name = "Calibri"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
Selection.Font.Bold = True
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With
ActiveCell.Offset(1, 0).Select
num = num + 1
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
Funciona perfectamente, el problema es que me ralentiza muchísimo la aplicación y ademas me gustaría seguir metiendo más formatos por lo que me gustaría saber si hay una manera más sencilla y rápida.
Es decir primero le doy el mismo formato a toda la matriz y después a la fila de tienen en la columna A la palabra Cua&n(n es un numero sucesivo) le doy otro formato.
Lo hago de la siguiente manera:
' Le damos formato a toda la matriz
Range("A7").Resize(x2, 55).Select ' asi selecciono toda la matriz: matriz(x2,55)
Selection.Font.Italic = True
With Selection.Font
.Name = "Calibri"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
'PONEMOS DIFERENTE FORMATO A LAS CELDAS QUE SON CUA+num
Range("A7").Select
num = 1
Do While ActiveCell <> Empty
If ActiveCell.Value = "CUA" & num Then
ActiveCell.EntireRow.Select
With Selection.Font
.Name = "Calibri"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
Selection.Font.Bold = True
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With
ActiveCell.Offset(1, 0).Select
num = num + 1
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
Funciona perfectamente, el problema es que me ralentiza muchísimo la aplicación y ademas me gustaría seguir metiendo más formatos por lo que me gustaría saber si hay una manera más sencilla y rápida.
1 respuesta
Respuesta de Carlo Navarro Rojas
1