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
Buenas Tardes
Tengo un problema con una macro que cree para ejecutar una consulta desde excel y que traiga los resultados en una celda en particular.
Hace meses la vengo usando y funcionaba perfecto, pero desde la semana pasada me tira este error:
RUN TIMER ERROR 1004 Application defined or objet defined error
y se tilda la siguiente sentencia
.Refresh BackgroundQuery:=False
Llevo toda una semana investigando que puede ser y no encuentro nada. Agradezco su ayuda *******!!!!
Dim varSQL
' OBTIENE EL NUMERO SIGUIENTE DE BASE
varSQL = Sheets("ArmadoQuery").Range("c23")
Sheets("Resultado").Select
Range("F15").Select
Selection.ClearContents
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DRIVER=SQL Server;SERVER=XXXXX;UID=XXXX;pwd=XXXX;DATABASE=XXXXX" _
, Destination:=Range("F15"))
.CommandText = varSQL
.Name = "Query from bi en bi01"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
Do While .Refreshing
DoEvents
Loop
End With
End Sub