[RESUELTO] declarar ubicacion de celda de manera sencilla?

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Avatar de Usuario
jfca283
Mensajes: 16
Registrado: Lun Abr 19, 2010 11:46 am
Ubicación: Santiago, Chile

[RESUELTO] declarar ubicacion de celda de manera sencilla?

Mensaje por jfca283 »

hola
hay alguna manera sencilla de declarar una celda por ubicacion?
algo como en vba con range("a1").Select?
odio el maldito
getcellbyposition(,)...es engorroso...casi absurdo
algun plugin...no se
por ultimo escribir en vba las referencias a celdas dentro de un ODS con macro en BASIC
trato de aprender y me molesta demasiado como simples comandos terminan siendo un texto enorme
sorry por la odiosidad, pero es la verdad
Última edición por jfca283 el Jue Abr 29, 2010 1:51 am, editado 1 vez en total.
OpenOffice 3.1 en Ubuntu 9.10
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: declarar ubicacion de celda de manera sencilla?

Mensaje por mauricio »

Hola...

Si, estoy de acuerdo, es una odiosidad, pero es TU odiosidad y TU verdad... antes de que te me enojes, termina de leerme. Entiendo tu frustración, te lo dice un programador autodidacta de muchos años sabe que frustrante puede ser, pero, también, esos años me han llevado a saber que la mayor parte del problema era mi desconocimiento de la herramienta, es decir mi ignorancia. Ahora hay instrucciones paso a paso de como programar en OOo Basic http://user.services.openoffice.org/es/ ... =50&t=1545 y creeme, puede ser lo que quieras, pero programar, en el lenguaje que quieras, no es sencillo, dejame repetirtelo, no es sencillo, si buscas sencillez en la programación, lo siento, creo, y reitero el creo, no es para ti. Precisamente ayer, migre un código de VBA, con líneas tan sencillas como estas:

Código: Seleccionar todo

	        For Each c In Range("VAL_NAT0_L1")
    	        c.FormulaR1C1 = "=VAL_0"
	        Next c
        
    	   For i = 0 To 10000
        	    Calculate
            	If Range("L12") = Range("V15") And Range("L13") < Range("W16") And Range("L13") > Range("W17") Then
                	Range("VAL_NAT0_L1").Copy
	                Range("VAL_NAT0_L1").PasteSpecial Paste:=xlPasteValues
    	            Application.CutCopyMode = False
        	        Exit For
            	End If
	        Next
    	End If
¿Pero que crees?, todas las sencillas líneas sumaban más de 400 líneas, en OOo Basic se redujeron a solo 100 líneas, por supuesto esto tiene dos moralejas, la primera es que lo sencillo no siempre es lo más eficiente, y la segunda es que hay que dominar el lenguaje, el que quieras, por más sencillo que sea.

Si te frustra algo tan sencillo como hacer referencia a una celda:

Código: Seleccionar todo

Celda = ThisComponent.getSheets.getByName( "Hoja1" ).getCellRangeByName( "B2" )
Puedes intentar hacer una función que te retorne una referencia a la celda o celdas pasadas de la hoja pasada:

Código: Seleccionar todo

Function Celdas( Hoja As String, Celda As String) As Object
Dim oHojas As Object, oHoja As Object

	oHojas = ThisComponent.getSheets
	If oHojas.hasByName( Hoja ) Then
		oHoja = oHojas.getByName( Hoja ) 
		Celdas = oHoja.getCellRangeByName( Celda )
	End If
	
End Function
Para despues usarla todas las veces que quieras de forma tan sencilla como:

Código: Seleccionar todo

	oCelda = Celdas( "Hoja1", "B2" )
	oCelda.setString( "Es facil" )

	oCelda = Celdas( "Hoja1", "B2:E50" )
Te invito a estudiar con una nueva perspectiva y usar este foro para resolver tus dudas.

Por favor, si esto responde tu pregunta, edita el primer mensaje de este hilo y agrega al principio del título la etiqueta [RESUELTO], de esta forma conseguiremos un foro más ordenado.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
jfca283
Mensajes: 16
Registrado: Lun Abr 19, 2010 11:46 am
Ubicación: Santiago, Chile

Re: declarar ubicacion de celda de manera sencilla?

Mensaje por jfca283 »

lo siento...no me interesa ser un programador, como a la mayoría de las personas
solo cosas sencillas en vba he hecho y con esas me muevo, como la mayoría...
y hay lenguajes sencillos para programar, unos mas, otros menos
pero BASIC de ooffice es de los menos
creo que dejare OO para todo lo demas menos macros...me inclinare vba y nunca recomendare OO para migrar
es la realidad
mire tu codigo y te felicito, te manejas bien
pero la mayoria no, ni les interesa saber ese tremendo texto que ingresaste para un simple
Range().Selection...de verdad debiera hacer algo office, es un gran pero gran pero para una oficina si no puedes programar algo sencillo
he visto ejemplos y cosas minimas en vba, como la mayoria de las macros usan, en OO se tornan engorrosas a mas no poder
tratare de virtualizar en linux excel, porque de verdad me voy decepcionado de OO...bastante
OpenOffice 3.1 en Ubuntu 9.10
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO] declarar ubicacion de celda de manera sencill

Mensaje por mauricio »

Sin comentarios...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder