[RESUELTO] Editar texto bajo una condición

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
markotxe
Mensajes: 27
Registrado: Jue May 02, 2019 9:47 am

[RESUELTO] Editar texto bajo una condición

Mensaje por markotxe »

Hola,
Estoy intentando editar un texto (por ej en B8) desde una macro con la condición de que: Si la celda (B8) esta ocupada, entonces se debería editar 3 celdas mas abajo. (y así en boucle...)

He encontrado este código que cumple con la condición deseada pero no consigo adaptarlo a un string.

Código: Seleccionar todo

Sub AA
Dim Doc as Object
Dim Hoja as Object
Dim Nombre as String
Dim Destino as Object

Doc = ThisComponent
Hoja = Doc.Sheets.GetByName("Kronos")
Nombre = "AA"  
for i = 7 To 133 step 3  
   Destino = Feuille.getCellByPosition(1,i)
   if Destino.String = "" Then 
      Hoja.copyrange(Destino.CellAddress, Nombre.String)  ''El mensaje de error aparece aqui 
      exit for 
   end if      
next
End Sub

Muchas Gracias por vuestra atención.
Amicalmente, Marc
Adjuntos
Textos.ods
(11.69 KiB) Descargado 227 veces
Última edición por markotxe el Mar May 07, 2019 9:13 pm, editado 1 vez en total.
OpenOffice 4.1.5 CALC, Window10
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Editar texto bajo una condición

Mensaje por FJCC-ES »

El método copyRange() sirve para copiar un rango de celdas. Si quiere escribir un texto fijo en una celda, puede asignar el texto a la propiedad String de la celda.

Código: Seleccionar todo

Sub AA
Dim Doc as Object
Dim Hoja as Object
Dim Nombre as String
Dim Destino as Object

Doc = ThisComponent
Hoja = Doc.Sheets.GetByName("Kronos")
Nombre = "AA" 
for i = 7 To 133 step 3 
   Destino = Hoja.getCellByPosition(1,i) 'Era Feuille.getCellByPosition
   if Destino.String = "" Then
      Destino.String =  Nombre
      exit for
   end if     
next
End Sub
markotxe
Mensajes: 27
Registrado: Jue May 02, 2019 9:47 am

Re: Editar texto bajo una condición

Mensaje por markotxe »

Hola FJCC-ES,
Ok,ok lo entiendo y ahora que la solucion esta frente de mi nariz me parece de una logica implacable. (string es una propiedad, no un ojeto por lo tanto no se le puede tratar como tal)
Dado la cantidades de veces que ha venido a rescatarme, las palabras me faltan para exprimir todo el agradacimiento que tengo.
Entonces clausurare con un

MUCHISISISIMAS GRACIAS!
(Aunque me paresca poco)
OpenOffice 4.1.5 CALC, Window10
Responder