Etude du code
Analyse de "InsertionFeuille"
Dim MonClasseur, MaFeuille As Object
Dim Position as Integer
-- déclaration des variables MonClasseur et MaFeuille de type objet, Position de type Entier
MonClasseur = ThisComponent
-- affectation de l'objet "classeur courant" à MonClasseur
Position = 0
If MonClasseur.Sheets.hasByName("MaBelleFeuille")= False Then
-- S'il n'existe pas de feuille de calcul nommée "MaBelleFeuille" dans le classeur courant
MaFeuille = MonClasseur.createInstance("com.sun.star.sheet.Spreadsheet")
-- création d'un objet feuille de calcul et affectation de cet objet à l'objet MaFeuille
MonClasseur.Sheets.insertByName("MaBelleFeuille", MaFeuille)
-- insertion de l'objet MaFeuille sous le nom MaBelleFeuille dans la liste des feuilles du classeur courant
End If
If MonClasseur.Sheets.hasByName("Feuille3")= False Then
-- S'il n'existe pas de feuille de calcul nommée "Feuille3" dans le classeur courant
MonClasseur.Sheets.insertNewByName("Feuille3", Position)
-- insertion d'un nouvel objet feuille sous le nom Feuille3 à la position 0 (en premier) dans la liste des feuilles du classeur courant
End If
Analyse de CelluleType
Dim LaCellule As Object
-- déclaration de la variable LaCellule de type objet
LaCellule = thisComponent.Sheets(0).getCellByPosition(0,0)
-- affection de la cellule A1 de la 1ère feuille du classeur courant à LaCellule
With com.sun.star.table.CellContentType
Select Case LaCellule.Type
Case .EMPTY '0
-- la cellule A1 est vide
MsgBox "La cellule est vide", MB_ICONINFORMATION
-- affichage du message
Case .VALUE '1
-- la cellule A1 contient une valeur numérique
MsgBox "La cellule contient un nombre",MB_ICONINFORMATION
Case .TEXT '2
-- la cellule A1 contient du texte
MsgBox "La cellule contient du texte", MB_ICONINFORMATION
Case .FORMULA '3
-- la cellule A1 contient une formule
MsgBox "La cellule contient une formule", MB_ICONINFORMATION
End Select
End with
Analyse de Copie et +
Dim MaFeuille, LaCellule as Object
Dim NbFeuilles as Integer
Dim nomFeuilleSource, nomFeuilleCible as String
-- déclaration des variables maFeuille, LaCellule de type objet ; NbFeuilles de type entier ; nomFeuilleSource et nomFeuilleCible de type chaine de caractères
NbFeuilles = thisComponent.sheets.count
-- affection du nombre de feuilles du classeur courant à NbFeuilles
nomFeuilleSource = inputBox ("nom de la feuille à copier ?", Mb_OK, "Feuille1")
-- affection à nomFeuilleSource de la saisie effectuée par l'utilisateur
if thisComponent.sheets.hasByName(nomFeuilleSource) then
-- s'il existe une feuille nommée nomFeuilleSource
nomFeuilleCible = inputBox ("quel nom pour la copie ?", "Opération Copie", "Copie de ...")
-- affection à nomFeuilleCible de la saisie effectuée par l'utilisateur
if thisComponent.sheets.hasByName(nomFeuilleCible) = False then
-- s'il n'existe pas une feuille nommée nomFeuilleCible
thisComponent.Sheets.copyByName(nomFeuilleSource,nomFeuilleCible,NbFeuilles)
-- faire une copie et la placer en queue
MaFeuille= thisComponent.Sheets.getByName(nomFeuilleCible)
-- affection à maFeuille de la feuille nomFeuilleCible
thisComponent.currentController.setActiveSheet(MaFeuille)
-- rendre active MaFeuille
end if
end If
LaCellule = thisComponent.currentController.activeSheet.getCellRangeByName("A1")
-- affection à laCellule de la cellule A1 de la feuille active du classeur courant
LaCellule.string = "Copie effectuée"
msgBox (" dans la cellule A1 est inscrit : copie effectuée ",MB_ICONINFORMATION, "info système", MB_ICONINFORMATION)
-- affichage du message
Analyse de Sélection Courante
Dim SelCourante, Info as object
Dim ligne, colonne as integer
Dim nomSelection as string
-- déclaration des variables SelCourante, Info de type objet ; ligne, colonne de type entier ; nomSelection de type chaine de caractères
SelCourante = ThisComponent.CurrentSelection
-- affectation de la sélection courante du classeur courant à SelCourante
Info = ThisComponent.createInstance("com.sun.star.table.CellAddressConversion")
-- affecter une instance de CellAddressConversion à Info
if SelCourante.supportsService("com.sun.star.sheet.SheetCell") then
-- si la sélection est une seule cellule
with SelCourante.cellAddress
ligne = .row
colonne = .column
-- affecter ligne et colonne avec les coordonées de SelCourante
msgBox ( "les coordonnées de la cellule sélectionnée sont : ("+ cStr(colonne) + " , " + cStr(ligne) + ")", MB_ICONINFORMATION)
-- afficher les coordonnées de selCourante
end with
Info.Address = SelCourante.cellAddress
'Info ressemble à feuille1.E1
nomSelection = split(Info.UserInterfaceRepresentation,".")(1)
msgBox ( "la cellule sélectionnée est :" + nomSelection , MB_ICONINFORMATION)
-- afficher la référence de selCourante
elseif SelCourante.supportsService("com.sun.star.sheet.SheetCellRange") then
-- sinon si la sélection est une plage de cellules
with SelCourante.rangeAddress
msgBox ( "les coordonnées de la plage sélectionnée sont : ("+ .startColumn + " , " + .startRow + ") - (" + .endColumn + " , " + .endRow + ")", MB_ICONINFORMATION)
-- afficher les coordonnées de selCourante (la plage)
end with
nomSelection = SelCourante.AbsoluteName
'nomSelection ressemble à $feuille1.$E$1:$F$15
nomSelection = Join(Split(nomSelection, "$"), "")
nomSelection = split(nomSelection,".")(1)
msgBox ( "la plage sélectionnée est : "+ nomSelection, MB_ICONINFORMATION)
-- afficher la référence de selCourante
else
msgbox ("la sélection doit être soit une cellule, soit une plage de cellules", MB_ICONINFORMATION)
end if