Código: Seleccionar todo
ThisComponent.Sheets(9).GetCellByPosition(1,0).SetFormula( xDato )
Código: Seleccionar todo
ThisComponent.getSheetBtName(NombreNuevaHoja).GetCellByPosition(1,0).SetFormula( xDato )
Código: Seleccionar todo
Dim DocCalc As Object
Dim Seleccion As Object
Dim NombreNuevaHoja As String
Dim HojasEnLibro As Object
Dim ArchivoPlantilla As String
Dim HojaCreada As Object
On Error Goto CONTROL_ERRORES
DocCalc = ThisComponent
Seleccion = DocCalc.getCurrentSelection()
If MsgBox( "¿Deseas guardar los cambios realizados?", 1 + 32, "Añadir Proveedor" ) = 1 Then
nRow = UltimaFila( 1 )
With oDialogo.Model
xDato = .TextField1.Text
ThisComponent.Sheets(1).GetCellByPosition(0,nRow).SetFormula( xDato )
With Seleccion
'Solo si es una sola celda
If .supportsService("com.sun.star.sheet.SheetCell") Then
'También If .getImplementationName() = "ScCellObj" Then
'Si no es la columna A sale del procedimiento
'En OOBasic las columnas y filas comienzan en 0 (cero)
If .getCellAddress.Column <> 0 Then Exit Sub
NombreNuevaHoja = xDato
'Si la celda está vacía sale del procedimiento
If NombreNuevaHoja = "" Then Exit Sub
NombreNuevaHoja = "HojaPedido " & NombreNuevaHoja
HojasEnLibro = DocCalc.getSheets()
With HojasEnLibro
If Not .hasByName(NombreNuevaHoja) Then
'Si no existe la insertamos al final
ArchivoPlantilla = "/home/xavi/.config/libreoffice/4/user/template/HojaPedido2.ots"
.insertNewByName(NombreNuevaHoja, .getCount())
HojaCreada = .getByIndex(.getCount()-1)
With HojaCreada
'PLANTILLA_01: es el nombre de la hoja que va a servir de modelo. El archivo modelo puede
'tener varias hojas y podemos seleccionar la que nos interese
.link(ConvertToURL(ArchivoPlantilla), "HojaPedido", "", "", com.sun.star.sheet.SheetLinkMode.NORMAL)
.setLinkMode(com.sun.star.sheet.SheetLinkMode.NONE)
'El color de la pestaña lo decide la macro aleatoriamente. Si quieres un color determinado
'tendrías que poner los números apropiados de 0 a 255 siendo:
'RGB(0, 0, 0) el color NEGRO; RGB(255, 255, 255) el color BLANCO;
'RGB(255, 0, 0) el color ROJO; RGB(0, 255, 0) el color VERDE;
'RGB(0, 0, 255) el color AZUL; etc, etc.
.TabColor = RGB(0, 255, 0)
End With
Else
MsgBox "Esta hoja ya existe", 16, "¡Atención!"
End If
End With
End If
End With
[color=#FF0040] ThisComponent.getSheetBtName(NombreNuevaHoja).GetCellByPosition(1,0).SetFormula( xDato )
[/color]