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
Hola a todos! Quisiera me ayudaran por favor con la ejecución de una macro . Me funciona perfecta pero necesito saber como hago para que solo me guarde la hoja que necesito, en si, la hoja 10 pero me guarda los nuevos libros con todas las hojas.
Sub control2558()
Application.ScreenUpdating = False
Dim I As Integer
I = 4
While Hoja10.Cells(I, 102) <> ""
Hoja10.Cells(6, 82) = Hoja10.Cells(I, 102)
Hoja10.Select
Dim NombreArchivo, RutaArchivo As String
NombreArchivo = "Hoja Control " & Hoja10.Cells(I, 102)
RutaArchivo = ActiveWorkbook.Path & "\" & NombreArchivo & ".xlsm"
ActiveWorkbook.SaveAs Filename:=RutaArchivo
Hoja10.Select
' ActiveSheet.PrintOut Copies:=1, Collate:=False
I = I + 1
Wend
MsgBox ("Proceso generado con éxito")
Application.ScreenUpdating = True
End Sub
Así muestra el Visual Basic el modulo:
Gracias
Editado el por linacg96