varias una tamaño que personalizar para imprimir hojas hoja corte con como celdas ajustar excel excel-formula

una - como imprimir en excel varias hojas



Fórmula de Excel que imprime el color de la celda(ColorIndex o RGB) (3)

Aquí hay algunas funciones pequeñas para ti. Desde su hoja, presione Alt - F11 para llegar al editor de VBA, inserte un nuevo módulo, pegue el siguiente código, regrese a su hoja de trabajo y utilícelos por sus nombres, como in =FillColor(A1)

Los primeros dos son los prometidos "3-liners" que dan valores decimales para los colores de fuente y de fondo, aunque no son muy útiles.

El segundo par convierte el número decimal a RGB y devuelve una cadena de formato N, N, N

El tercer par son fórmulas de matriz : seleccione 3 celdas en una fila, ingrese la fórmula y presione Ctrl + Mayús + Entrar para obtener valores RGB numéricos en 3 celdas vecinas

Function FillColor(Target As Range) As Variant FillColor = Target.Interior.Color End Function Function FontColor(Target As Range) As Variant FontColor = Target.Font.Color End Function Function FillColorRGB(Target As Range) As Variant Dim N As Double N = Target.Interior.Color FillColorRGB = Str(N Mod 256) & ", " & Str(Int(N / 256) Mod 256) & ", " & Str(Int(N / 256 / 256) Mod 256) End Function Function FontColorRGB(Target As Range) As Variant Dim N As Double N = Target.Font.Color FontColorRGB = Str(N Mod 256) & ", " & Str(Int(N / 256) Mod 256) & ", " & Str(Int(N / 256 / 256) Mod 256) End Function Function FillColorRGBArray(Target As Range) As Variant Dim N As Double, A(3) As Integer N = Target.Interior.Color A(0) = N Mod 256 A(1) = Int(N / 256) Mod 256 A(2) = Int(N / 256 / 256) Mod 256 FillColorRGBArray = A End Function Function FontColorRGBArray(Target As Range) As Variant Dim N As Double, A(3) As Integer N = Target.Font.Color A(0) = N Mod 256 A(1) = Int(N / 256) Mod 256 A(2) = Int(N / 256 / 256) Mod 256 FontColorRGBArray = A End Function

Una advertencia : cambiar el color de una celda no comienza el recálculo por las funciones / fórmulas anteriores, ya que no se supone que la recolocación de una celda genere recálculo. Tienes que iniciar manualmente un recálculo completo usando Ctrl + Alt + Shift + F9

¿Existe, en Excel, una Fórmula que recupera el ColorIndex (o RGB) de una celda?

Encontré la siguiente función:

CELL(info_type, the_cell)

documentado aquí , pero no tiene ninguna información de referencia para el color de la celda.

Es una información de color , pero es inútil para mí. De hecho, se describe de la siguiente manera:

"color" El valor 1 si la celda está formateada en color para valores negativos; de lo contrario, devuelve 0 (cero).

¿Alguna idea?

Además, resultó que la propiedad de VBA que hace esto es Cell.Interior.Color pero en realidad no estoy usando Macros, sino simples fórmulas de Excel. ¿Hay alguna forma de emular las funciones de VBA con una fórmula?


La siguiente función mostrará el valor RGB de una celda seleccionada.

Function CellColorValue(CellLocation As Range) Dim sColor As String Application.Volatile ''Retrieve hex value into string sColor sColor = Right("000000" & Hex(CellLocation.Interior.Color), 6) ''Return the string Version e.g. 255,255,255 RGB color value found in ''Excel cell. Use in built worksheet function to convert Hex to Decimal ''Use string function to separate Hex string into three parts CellColorValue = Application.WorksheetFunction.Hex2Dec(Right(sColor, 2)) & "," & application.WorksheetFunction.Hex2Dec(Mid(sColor, 3, 2)) & "," & Application.WorksheetFunction.Hex2Dec(Left(sColor, 2)) End Function


por favor intente con abajo

Cambios realizados: vea el comentario en el código

Módulo

Public Function Performance_Message(NonPreferredAvg As Single _ , NonPreferredAvgname As String _ , PreferredAvg As Single _ , PreferredAvgname As String _ , Optional Outputtype As String _ ) As Variant Dim performancemessage As String Dim averagedifference As Single Dim stravgdif As String Dim cellcolor As String averagedifference = Abs(NonPreferredAvg - PreferredAvg) stravgdif = FormatPercent(averagedifference, 2) Select Case PreferredAvg Case Is < NonPreferredAvg performancemessage = PreferredAvgname & " Is " & stravgdif & " Less Than " & NonPreferredAvgname cellcolor = 4 ''"green" ''Changes made Case Is = NonPreferredAvg performancemessage = PreferredAvgname & " Equals " & NonPreferredAvgname cellcolor = 6 ''"yellow" ''''Changes made Case Is > NonPreferredAvg performancemessage = PreferredAvgname & " Is " & stravgdif & " Greater Than " & NonPreferredAvgname cellcolor = 5 ''"blue" ''Changes made Case Else performancemessage = "Something Bad Happened" End Select If Outputtype = "color" Then Performance_Message = cellcolor Else Performance_Message = performancemessage End If End Function

Hoja de cálculo

Private Sub Worksheet_Change(ByVal Target As Range) Dim myColor As Double myColor = Target.Value ''''Changes made Call SetPerformancecolor(Target, myColor) End Sub Private Sub SetPerformancecolor(Target As Range, myColor As Double) Target.Interior.ColorIndex = myColor ''''Changes made End Sub