Archives mensuelles : novembre 2012

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

Dictionnaire grammatical

Les suites bureautiques LibreOffice et OpenOffice ne disposent pas en standard d’un correcteur grammatical. Mais il en existe, je vais en présenter 2 :

  • LanguageTool.
  • Grammalecte, pour ce dernier, il faut que le dictionnaire soit à jour, il est disponible au même endroit.

Attention : Le correcteur grammatical n’est pas infaillible, mais il permet de corriger les fautes grossières comme une erreur d’accord, etc.