Así lo he hecho, he aceptado la segunda columna de anotación y he añadido una macro:
Private Sub Worksheet_Calculate()
Dim f As Long
Dim disparar As Boolean
' Si ya se disparó una vez, salimos
If Me.Range("XX2").Value <> "" Then Exit Sub
' Comprobamos si alguna W llegó a 2
For f = 2 To 6
If Me.Cells(f, "W").Value = 2 Then
disparar = True
Exit For
End If
Next f
' Si ninguna llegó a 2, no hacemos nada
If disparar = False Then Exit Sub
' Guardamos TODO el rango como base
For f = 2 To 6
Me.Cells(f, "XX").Value = Me.Cells(f, "W").Value
' Fórmula en Y restando su base
Me.Cells(f, "Y").FormulaLocal = _
"=CONTAR.SI.CONJUNTO(Datos!B:B;$V$1;Datos!D:D;$V" & f & ")" & _
"-CONTAR.SI.CONJUNTO(Datos!B:B;$V$1;Datos!E:E;$V" & f & ")" & _
"-XX" & f
Next f
End Sub
No es la opción más bonita porque sigue contando los objetos en la columna W, pero la función me resulta suficiente para poder llevar la cuenta.
Tendré que hacer una pequeña macro para cada jugadora, son 14, pero espero no tener problemas
Por
Maku, · publicado
Hola mi duda es sobre selección de rangos. ¿Para poder seleccionar un rango la hoja donde se encuentra debe estar seleccionada/activada?
Lo he intentado mientras estaba seleccionada otra hoja de esta forma:
Sheets(«Datos»).Range(«A1:A5»).Select
Pero da error, para evitarlo solo se me ocurre, seleccionar la hoja previamente:
Sheets(«Datos»).Select
Range(«A1:A5»).Select
No se si hay alguna forma de hacerlo sin seleccionar previamente la hoja, para que sea un proceso mas rápido.
¿Seria lo mismo si pongo .Select ó . Activate; cual es la diferencia entre ambas?
Por otro lado; ¿Todo lo anterior es extrepolable a otros procedimientos?, por ejemplo si quisiera poner en negrita la letra:
Sheets(«Datos»).Range(«A1:A5»).Font.Bold = True
o también debería ser:
Sheets(«Datos»).Select
Range(«A1:A5»).Font.Bold = True
Muchas gracias.