Buscando ejemplos aqui y alla, he logrado encontrar este codigo (que
funciona) para que cambie el color de la celda al seleccionar de una
lista desplegable:
Private Sub Worksheet_Change(ByVal Target As Range)
If (Intersect(Target, Me.[A:A]) Is Nothing) Or
Target.Columns.Count > 1 Then Exit Sub
Dim strPruebaValidación As String
Set Target = Target.Cells(1, 1)
On Error GoTo captura
strPruebaValidación = Target.Validation.Formula1
On Error GoTo 0
Application.EnableEvents = False
WorksheetFunction.Index(Range(Target.Validation.Formula1),
WorksheetFunction.Match(Target.Value, Range
(Target.Validation.Formula1), 0), 1).Copy
Target.PasteSpecial Paste:=xlPasteFormats
Target.Select
Application.EnableEvents = True
Application.CutCopyMode = False
Exit Sub
captura:
Exit Sub
End Sub
Resulta que si añado una funcion en un modulo que necesito para otra
cosa, y que cuenta las celdas de determinado color, la funcion
funciona, valgame la redundancia, pero lo anterior deja de funcionar.
La funcion es:
Function contarfondo(rng As Range, rng2 As Range) As Double
Application.Volatile True
Dim celdas As Range
Dim contando As Integer
contando = 0
For Each celdas In rng.Cells
If celdas.Interior.ColorIndex = rng2.Interior.ColorIndex Then
contando = contando + 1
End If
Next celdas
contarfondo = contando
End Function
¿Alguien sabe por que pasa esto?
Leer las respuestas