Macro, mediante botón, para añadir +1 a una celda de otra hoja

Hola a todos, a ver si me podéis ayudar.
Tengo un macro creado para que, pulsando un botón, me añada un +1 a una celda de otra hoja dentro del mismo documento.
Al ejecutar la macro desde el editor, me funciona correctamente. En cambio, cuando lo hago a través del botón, me funciona, pero en la misma hoja.
La hoja que está el botón se llama player1 y la que está la celda a modificar se llama Stats.

Esta es la macro:

REM ***** BASIC *****
Option Explicit

Sub Sumar1CeldaO21()
'Aumenta en una unidad el valor de la celda A1
Dim Stats As Object

Stats = ThisComponent.CurrentController.ActiveSheet
Stats.getCellRangeByName("O21").setValue(Stats.getCellRangeByName("O21").getValue() + 1)

End Sub

A ver si alguien le ha ocurrido o sabe la solución, muchas gracias.

A mi me parece normal que no te funcione.
Si el botón está en la hoja “player1” cuando pulsas el botón, ThisComponent.CurrentController.ActiveSheet devuelve "player1" (que es la hoja activa en ese momento) y se lo asigna a Stats,

Por tanto la sentencia Stats.getCellRangeByName("O21").setValue(Stats.getCellRangeByName("O21").getValue() + 1) lo que hace es sumar 1 al contenido de la celda O21 de la hoja player1.

Para conseguir lo que (creo que) quieres, tendrías que hacer:

Stats = ThisComponent.Sheets.getByName("Stats")
Stats.getCellRangeByName("O21").setValue(Stats.getCellRangeByName("O21").getValue() + 1)

Prueba con:

Sub Sumar1CeldaO21()
'Aumenta en una unidad el valor de la celda A1

    doc = ThisComponent
    hoja = doc.Sheets.getByName("Stats")
    celda = hoja.getCellRangeByName("O21")
    celda.Value = celda.Value + 1

End Sub

Si usas Option Explicit debes declarar todas las variables primero.

1 Like

Muchas gracias a todos por las respuestas.
Ha funcionado correctamente.

Gracias