Botón macro no replica macro bien

Discute sobre la aplicación de hojas de cálculo

Botón macro no replica macro bien

Notapor eldanicello » Jue Ene 03, 2019 1:07 pm

Buenas...y Feliz Año a tod@s.

Estoy realizando una aplicación para jugar al ajedrez el final de partida entre una torre - rey blanco y un rey negro, donde la torre - rey blanco es el ordenador y el rey negro soy yo.

He creado tres macros como veis en el archivo adjunto una para cada ficha. El objetivo de las macros es el mismo, repetir el valor del último movimiento (H6,D5, el que sea) incluido en la fila 6, copiarlo en la fila V5 y W5 y copiarlo de nuevo en la las casillas de la fila 5 que corresponde.

Dado que no śé programar, las macros las he realizado mediante la grabadora y al ejecutarlas funcionan perfectamente. El problema viene cuando al crear los botones para ejecutar las macros más cómodamente, estos botones no replican bien las macros. Por la práctica he visto que las macros replican en los botones las dos últimas casillas pegadas, no las que deberían ser en función de cada macro (en el caso del rey negro las casiilas P6+Q6, en la torre (N6+o6) y en el rey blanco (Ñ6+M6).

He intentado ver foros para ver si este problema ya se ha visto, pero no veo nada que sea exactamente a lo que yo planteo.

Cualquier ayuda es bienvenida. Muchas gracias.,


Editado: Por RMG. Título cambiado a minúsculas, por favor lee las normas del foro, no se puede escribir en mayúsculas.
Adjuntos
Botón macro para juego ajedrez.ods
(20.5 KiB) 24 veces
Libreoffice 6.0.7.3 en Ubuntu 17.10
eldanicello
 
Mensajes: 1
Registrado: Mié Ene 02, 2019 11:03 pm

Re: Botón macro no replica macro bien

Notapor PepeOooSevilla » Vie Ene 04, 2019 8:01 am

Hola.

Te damos la bienvenida al Foro y, por favor, no dejes de leer la Guía de supervivencia.

Si quieres adentrarte en el mundo de las macros en OoBasic para OpenOffice/LibreOffice, lo primero que has de hacer es leer, releer y estudiar el libro de nuestro compañero mauricio Aprendiendo OOo Basic y, también, visitar y estudiar las páginas Manuales de Apache OpenOffice en español: Basic y Basic OpenOffice: Apache OpenOffice Basic en español de nuestro compañero SLV-es.

En el archivo adjunto (biblioteca Standar.Module1) tienes una posible solución, sin usar la grabadora de macros. Como puedes observar, el número de líneas de la macro disminuye de forma casi exponencial.

Código: Seleccionar todo   Expandir vistaContraer vista
REM  *****  BASIC  *****
Option Explicit

Sub CopiarTorre()
   Dim HojaActiva As Object

   'Referencia a la hoja activa
   HojaActiva = ThisComponent.getCurrentController.getActiveSheet()
   With HojaActiva
      .getCellRangeByName("N5").setString(.getCellRangeByName("N6").getString())
      .getCellRangeByName("O5").setValue(.getCellRangeByName("O6").getValue())
   End With
End Sub

Sub CopiarReyBlanco()
   Dim HojaActiva As Object

   'Referencia a la hoja activa
   HojaActiva = ThisComponent.getCurrentController.getActiveSheet()
   With HojaActiva
      .getCellRangeByName("L5").setString(.getCellRangeByName("L6").getString())
      .getCellRangeByName("M5").setValue(.getCellRangeByName("M6").getValue())
   End With
End Sub

Sub CopiarReyNegro()
   Dim HojaActiva As Object

   'Referencia a la hoja activa
   HojaActiva = ThisComponent.getCurrentController.getActiveSheet()
   With HojaActiva
      .getCellRangeByName("P5").setString(.getCellRangeByName("P6").getString())
      .getCellRangeByName("Q5").setValue(.getCellRangeByName("Q6").getValue())
   End With
End Sub


Saludos cordiales.
Adjuntos
Boton macro para juego ajedrez_eldanicello_v2.ods
LibO Calc 6.0.7
(21.7 KiB) 24 veces
LibreOffice 6.1.5 en Windows 7 / 10
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Avatar de Usuario
PepeOooSevilla
 
Mensajes: 1066
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)


Volver a Calc

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 117 invitados