Fallo bloquear celda seleccionada y las tres consecutivas

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
fer17rugbier
Mensajes: 4
Registrado: Mié Ago 11, 2021 7:09 am

Fallo bloquear celda seleccionada y las tres consecutivas

Mensaje por fer17rugbier »

Hola buen dia,

En mis practicas me han solicitado hacer una macro que su función es bloquear la celda seleccionada y las tres celdas que se encuentran a la derecha.

He programado el siguiente codigo:

Código: Seleccionar todo

Sub MACRO4_DISCREPANCIAS_RG()

' MACRO4_DISCREPANCIAS_RG Macro
' Bloquea fecha, clave, realizado por, horas trabajadas (acciones correctivas)
' Acceso directo: CTRL+p

Dim oHojaActiva As Object
Dim oSel As Object
Dim oDoc As Object
Dim oCursor1 As Object
Dim oPC As New "com.sun.star.util.CellProtection"

	oDoc = ThisComponent
	oHojaActiva = oDoc.getCurrentController.getActiveSheet()
	oSel = oDoc.getCurrentSelection()
	oCursor1 = oSel.getSpreadSheet().createCursorByRange( oSel )
	oCursor1.collapseToCurrentRegion()
	oCursor1.collapseToSize(oCursor1.getColumns.getCount()+3, oCursor1.getRows.getCount()+0)

	With oPC
		.IsLocked = True
		.IsFormulaHidden = False
		.IsHidden = False
		.IsPrintHidden = False
		MsgBox "Celda Protegida"
		oCursor1.CellBackColor = RGB (196,215,155)
		
	End With
	oCursor1.CellProtection = oPC
	oHojaActiva.Protect("jose")
	
End Sub
El fallo que me está dando es que en ciertas celdas si funciona pero en otras no y no se a que puede ser debido.

Por adelantado, muchas gracias por la ayuda.

Saludos
LibreOffice 6.2 en Windows 10
Neftali R
Mensajes: 169
Registrado: Mar Jun 15, 2021 12:48 pm
Ubicación: Venezuela

Re: Fallo bloquear celda seleccionada y las tres consecutiva

Mensaje por Neftali R »

Buenos días,

No entiendo a que te refieres con que en ciertas celdas funciona y en otras no, puedes ser más específico?

Así, sin saber específicamente cual es el fallo, yo diría que el problema está en.

Código: Seleccionar todo

oCursor1.collapseToCurrentRegion()
Esa línea de código hace que si hay una celda con información al lado de la celda que estás seleccionando, esta (o estas) celda también se incluya en la variable oCursor1 antes de que marque las tres celdas que tiene a la derecha.

Saludos.
LibreOffice 7.2.6.2 | Windows 7 Ultimate
fer17rugbier
Mensajes: 4
Registrado: Mié Ago 11, 2021 7:09 am

Re: Fallo bloquear celda seleccionada y las tres consecutiva

Mensaje por fer17rugbier »

A lo que me refiero es que tengo una tabla y al ejecutar la macro en unas celdas me funciona bien y en otras me bloquea toda la fila de la celda seleccionada, dos filas por encima de la celda seleccionada y una fila por debajo de la celda seleccionada.
LibreOffice 6.2 en Windows 10
Neftali R
Mensajes: 169
Registrado: Mar Jun 15, 2021 12:48 pm
Ubicación: Venezuela

Re: Fallo bloquear celda seleccionada y las tres consecutiva

Mensaje por Neftali R »

En las celdas en que funciona bien todas las celdas que lo rodean están en blanco y en las que no funciona bien, y en las celda que funciona mal hay información en las celdas contiguas?
LibreOffice 7.2.6.2 | Windows 7 Ultimate
Responder