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 amigo, tengo una macro que me inserta una cantidad de imágenes en mi archivo excel, pero quiero hacer dos pequeñas modificaciones:
1) que la cantidad de fotos (CantFotos) que inserto este vinculado en una celda de mi excel, y no que la tenga que modificar desde la macro
2)que me comprima cada imagen que inserto a 150pp
esta es la macro:
Sub InsertarImagenes()
Dim PosX, PosY, X, J As Integer
Dim CantFotos As Integer
Dim Ruta As String
'le asigno valores a las variables, mismas que dependerán
'de cada proyecto:
'ruta de acceso a las imágenes
Ruta = "\"
'cantidad de imágenes a cargar:
CantFotos = 42
'margen izquierdo y superior que separará a cada imagen:
PosX = 10
PosY = 6310
J = 1
'si existe alguna autoforma la elimino:
If ActiveSheet.DrawingObjects.Count > 0 Then
ActiveSheet.DrawingObjects.Select
Selection.Delete
End If
'y cargo las 40 que se encuentran en el directorio:
For X = 1 To CantFotos
'este If es para asignar nuevos valores a las
'variables y hacer que aparezcan 5 imágenes x fila:
If J = 4 Then
PosX = 10
PosY = PosY + 245
J = 1
End If
'inserto una autoforma y como margen izq. y superior le paso las
ActiveSheet.Shapes.AddShape(msoShapeRectangle, PosX, PosY, 150, 200). _
Select
'aquí le indico que cargue la imagen, usando la variable Ruta y
'concatenando el número (x) con la extensión (.jpg)
On Error Resume Next
Selection.ShapeRange.Fill.UserPicture _
Ruta & X & ".jpg"
If Err.Number <> 0 Then
MsgBox "No se encontró una de las imágenes, por favor " _
& " revise el directorio", vbCritical, "Error"
Err.Clear
Exit Sub
End If
'incremento el margen izquierdo y a J
PosX = PosX + 160
J = J + 1
Next X
Range("c250").Select
End Sub
saludos amigos. y muy agradecido desde ya por su ayuda