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 el 25 de enero 25 ene
Sub FORMATO()
'
' TEXTO_COLUMNAS Macro
'
Sheets("A-S1-001").Select
Range("J2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("J2"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 9), Array(10, 1)), TrailingMinusNumbers:=True
Selection.NumberFormat = "h:mm:ss"
Range("K2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("K2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[-1]"
Range("K2").Select
Selection.Copy
Range("K2:K1001").Select
ActiveSheet.Paste
Selection.End(xlUp).Select
Columns("K:K").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("K1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$N$1001").AutoFilter Field:=11, Criteria1:= _
"00:00:00"
Range("K1000").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("K1").Select
ActiveSheet.Range("$A$1:$N$1001").AutoFilter Field:=11
Range("K2").Select
ActiveWorkbook.Worksheets("A-S1-001").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("A-S1-001").Sort.SortFields.Add2 Key:=Range( _
"K2:K1000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("A-S1-002").Sort
.SetRange Range("A2:N1000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.End(xlUp).Select
Selection.End(xlToLeft).Select
Sheets("A-S1-002").Select
Range("J2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("J2"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 9), Array(10, 1)), TrailingMinusNumbers:=True
Selection.NumberFormat = "h:mm:ss"
Range("K2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("K2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[-1]"
Range("K2").Select
Selection.Copy
Range("K2:K1001").Select
ActiveSheet.Paste
Selection.End(xlUp).Select
Columns("K:K").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("K1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$N$1002").AutoFilter Field:=11, Criteria1:= _
"00:00:00"
Range("K1000").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("K1").Select
ActiveSheet.Range("$A$1:$N$1002").AutoFilter Field:=11
Range("K2").Select
ActiveWorkbook.Worksheets("A-S1-004").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("A-S1-004").Sort.SortFields.Add2 Key:=Range( _
"K2:K1000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("A-S1-002").Sort
.SetRange Range("A2:N1000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.End(xlUp).Select
Selection.End(xlToLeft).Select
Sheets("A-S1-003").Select
Range("J2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("J2"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 9), Array(10, 1)), TrailingMinusNumbers:=True
Selection.NumberFormat = "h:mm:ss"
Range("K2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("K2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[-1]"
Range("K2").Select
Selection.Copy
Range("K2:K1001").Select
ActiveSheet.Paste
Selection.End(xlUp).Select
Columns("K:K").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("K1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$N$1001").AutoFilter Field:=11, Criteria1:= _
"00:00:00"
Range("K1000").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("K1").Select
ActiveSheet.Range("$A$1:$N$1000").AutoFilter Field:=11
Range("K2").Select
ActiveWorkbook.Worksheets("A-S1-003").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("A-S1-003").Sort.SortFields.Add2 Key:=Range( _
"K2:K1000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("A-S1-003").Sort
.SetRange Range("A2:N1000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.End(xlUp).Select
Selection.End(xlToLeft).Select
Módulo3.bas