Página 1 de 1

[RESUELTO] Editar texto bajo una condición

Publicado: Mar May 07, 2019 2:27 pm
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

Re: Editar texto bajo una condición

Publicado: Mar May 07, 2019 6:44 pm
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

Re: Editar texto bajo una condición

Publicado: Mar May 07, 2019 9:32 pm
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)