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, tengo un juego de Poker que funciona perfectamente.
Pero lo copio a un Mac y el juego lo puedo modificar a mi gusto pero las imágenes del cubilete (como si se moviera) no funciona, solo las imágenes,
que parte del código debería modificar ? envío parte del programa, la macro en cuestión.
Sub Tirar()
Dim COLUMNAS As String
Dim DADOS As String,
DADO As Integer
Dim y As Integer, d As Integer '--
Randomize Range("A1").Select
COLUMNAS = "FGHGHGI" 'Columna de la imagen del cubilete
DADOS = "JKLMNO" 'Columna de la imagen de los dados Visualizar
False For y = 1 To Len(COLUMNAS)
ActiveSheet.Shapes.Range("CUBILETE").Select
Selection.Formula = "=" & "'.'!" & Mid(COLUMNAS, y, 1) & 4
ActiveCell.Select If y = Len(COLUMNAS) Then
Application.ScreenUpdating = False
Visualizar True 'uf = Range("E" & Rows.Count).End(xlUp).Row + 1 'Range("E" & uf) = uf - 6
For d = 1 To 5
DADO = Int((6 * Rnd) + 1)
ActiveSheet.Shapes.Range("DADO" & d).Select
Selection.Formula = "=" & "'.'!" & Mid(DADOS, DADO, 1) & 8 'Range("E" & uf).Offset(0, DADO) = Range("E" & uf).Offset(0, DADO) + 1
Next 'Range("L" & uf) = Range("F" & uf) * 6 _ + Range("G" & uf) * 5 _ + Range("H" & uf) * 4 _ + Range("I" & uf) * 3 _ + Range("J" & uf) * 2 _ + Range("K" & uf)
End If
Application.Wait (Now + TimeValue("00:00:01"))
Next ActiveCell.Select Application.ScreenUpdating = True
End Sub