La función With permite ejecutar un conjunto de instrucciones sin tener que volver a hacer referencia al mismo objeto. Ante ello, a continuación se presenta un ejemplo en el cual se usa la función With para facilitar una lectura rápida de inventarios. Para el presente ejemplo se uso el siguiente registro de inventarios, el cual incluye 20 productos diferentes:
(Para mayor visualización de la imagen, hacer click en la misma)
En el anterior registro de productos, se uso la función With para aplicar formato a las celdas del encabezado de dicho registro, para aplicar color a las celdas de la columna cantidad y, también, para aplicar formato condicional a la misma columna mediante el uso de iconos que faciliten la lectura de qué productos requieren de re abastecimiento. Para lo explicado anteriormente se creo las tres siguientes macros:
Macro 1
Sub FormatoEncabezado()
Range("B3:G3").Select
With Selection.Font
.Name = "Arial"
.FontStyle = "Negrita"
.Size = 12
End With
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
With Selection.Interior
.PatternTintAndShade = 0
End With
End Sub
Macro 2
Sub ColorCeldas()
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.599963377788629
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
Formula1:="=51", Formula2:="=100"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent3
.TintAndShade = 0.599963377788629
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
Formula1:="=101", Formula2:="=150"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
EndSub
Macro 3:
Sub IconosCeldas()
Range("E4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.FormatConditions.AddIconSetCondition
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1)
.ReverseOrder = False
.ShowIconOnly = False
.IconSet = ActiveWorkbook.IconSets(xl3Symbols)
End With
With Selection.FormatConditions(1).IconCriteria(2)
.Type = xlConditionValueNumber
.Value = 51
.Operator = 7
End With
With Selection.FormatConditions(1).IconCriteria(3)
.Type = xlConditionValueNumber
.Value = 101
.Operator = 7
End With
End Sub
Una vez aplicada la función With en el registro de productos, el resultado se muestra en la imagen posterior. Como se aprecia, el formato condicional mediante iconos grafica qué productos cuentan con mayor (icono check) o menor stock (icono x).
(Para mayor visualización de la imagen, hacer click en la misma)
25/02/2015 a las 3:49 pm
Excelente explicación! Precisamente, buscaba este tipo de información para un trabajo y me ha sido de bastante ayuda. Hasta ahora ningún tema ha decepcionado!
06/03/2016 a las 12:50 pm
necesito un programa para una cafeteria y lavadero