Botón macro no replica macro bien

Discute sobre la aplicación de hojas de cálculo
Responder
eldanicello
Mensajes: 1
Registrado: Mié Ene 02, 2019 11:03 pm

Botón macro no replica macro bien

Mensaje por eldanicello »

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) Descargado 110 veces
Libreoffice 6.0.7.3 en Ubuntu 17.10
Avatar de Usuario
PepeOooSevilla
Mensajes: 1480
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Botón macro no replica macro bien

Mensaje por PepeOooSevilla »

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

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) Descargado 113 veces
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Responder