OOoLight

Qu’est que c’est que OOoLight !

C’est une version light de la suite bureautique AOO. Le site se trouve ici.

Mettre une image en arrière plan dans Writer

Sous Writer, si vous souhaitez mettre une image en arrière plan.

Voici le mode opératoire :

  1. Iil suffit d’aller dans le menu « Format/Page ».
  2. Une fois dans le « Style de page », il faut sélectionner l’onglet « Arrière-plan ».
  3. Dans ce dernier, dans la liste déroulante du « Comme », il faut sélectionner « Image ».
  4. Cliquer sur « Parcourir » pour aller sélectionner l’image souhaitée.
  5. Dans « Type », vous pouvez choisir l’emplacement de l’image.

Voilà, votre image est maintenant en image de fond.

Supprimer des lignes et colonnes vides dans un fichier Calc

Salut,

Voici le code permettant de supprimer les lignes (test sur la colonne A) et les colonnes (test sur la ligne 1) vides :

sub Vincent ()

    dim document   as object
    dim dispatcher as object
    dim feuile as object
    dim args1(0) as new com.sun.star.beans.PropertyValue
   
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    Feuille =  ThisComponent.getCurrentController().getActiveSheet()
   
   
    dispatcher.executeDispatch(document, ".uno:GoToEndOfData", "", 0, args1())
    CelluleActive = ThisComponent.getCurrentSelection
    NbCol = CelluleActive.CellAddress.Column + 1
    NbLig =  CelluleActive.CellAddress.Row + 1
   
    'Teste les lignes vides
    for i = NbLig to 0 step -1
        Cell = Feuille.getCellByPosition(0, i)
        ThisComponent.currentController.select(Cell)
        select case Cell.type
              Case com.sun.star.table.CellContentType.EMPTY
                ThisComponent.currentController.select(Cell)
                dispatcher.executeDispatch(document, ".uno:DeleteRows", "", 0, Array())
        end select
    next
    'Teste les colonnes vides
    for i = NbCol to 0 step -1
        Cell = Feuille.getCellByPosition(i, 0)
        ThisComponent.currentController.select(Cell)
        select case Cell.type
              Case com.sun.star.table.CellContentType.EMPTY
                ThisComponent.currentController.select(Cell)
                dispatcher.executeDispatch(document, ".uno:DeleteColumns", "", 0, Array())
        end select
    next


end sub

Calc : Ajouter des données dans une cellule

La fonction suivante permet d’ajouter des données dans une cellule d’un feuille dans un classeur :

Function Vincent_Modif_Donnees()

Dim oFichier As Object
Dim oFeuil As Object
Dim oCells As Object
Dim oSelect As Object
Dim oDestination As Object

    oFichier = thisComponent
    oFeuil = oFichier.sheets
    oDestination = oFeuil.getByName("Bilan")
    With oDestination
        .GetCellRangeByName("A1").string = "Modifier les données la cellule A1"
        .GetCellRangeByName("A2").string = "Modifier les données la cellule A2"
    End With
End Function

Calc : Insérer une feuille dans le classeur

La fonction suivante permet d’insérer une feuille dans un classeur contenant plusieurs feuille :

Function Vincent_Inserer_Feuille()

Dim oFichier As Object
Dim oFeuil As Object
Dim oCells As Object
Dim oSelect As Object
Dim oDestination As Object

    oFichier = thisComponent
    oFeuil = oFichier.sheets

    Niveau = 0 
    for x = 0 to NbFeuil - 1
        oUneFeuille = oFeuil(x)
        if oUneFeuille.Name = "Bilan" then
            Niveau = 1
         end if
    next x
    if Niveau = 0 then
       oFeuil = oFichier.createInstance("com.sun.star.sheet.Spreadsheet")
       oFichier.Sheets.insertByName("Bilan", oFeuil)
    end if
End function

Calc : Fusionner plusieurs feuilles dans une seule feuille

La fonction suivante permet de regrouper toutes les données des feuilles sur une même feuille, il faut pour cela créer une première feuille qui sera nommée « Bilan » :

Function Vincent_Copier_Feuilles()
 Dim oFichier As Object
 Dim oFeuil As Object
 Dim oCells As Object
 Dim oSelect As Object
 Dim oDestination As Object
 Dim oDel As Long
 Dim NbFeuil As Integer
 Dim x As Integer
 Dim i As Integer
 Dim oPos As ObjectoFichier = thisComponent
 oFeuil = oFichier.sheets
 oDestination = oFeuil.getByName("Bilan")

 oDel = com.sun.star.sheet.CellFlags.STRING
 ' Sélectionner toutes les cellules utilisées
 oCells = oDestination.createCursorByRange(oDestination.getCellRangeByName("A1")
 oCells.gotoEndOfUsedArea(True)
 oSelect = oDestination.getCellRangeByName(oCells.absoluteName)
 ' Effacer la feuille "Bilan" à partir de la cellule A1.
 oSelect.clearContents(oDel)
 ' Recopier dans la feuille "Bilan" toutes les celules utilisées des autres "Feuilles"
 NbFeuil = oFeuil.count
 ' ligne de départ pour la recopie sur la feuille "Bilan"
 i = 1  
 for x = 0 to NbFeuil - 1
 oUneFeuille = oFeuil(x)
 if left(oUneFeuille.Name,7) = "Feuille" then
 oCells = oUneFeuille.createCursorByRange(oUneFeuille.getCellRangeByName("A1")
 oCells.gotoEndOfUsedArea(True)
 oSelect = oUneFeuille.getCellRangeByName(oCells.absoluteName)
 oPos  = oDestination.getCellRangeByName("A" & i )
 oDestination.CopyRange(oPos.cellAddress,oSelect.RangeAddress)
 i = i + (oSelect.RangeAddress.EndRow - oSelect.RangeAddress.StartRow + 1)
 end if
 next x
End function