Dans cet article vous découvrirez la manière de créer des feuilles, d’en activer, de les renommer, de les
déplacer.
ACTIVER UNE FEUILLE (pointer dessus)
Ici on pointe sur la feuille SECTEUR
sub ACTIVE_FEUILLE
'j'active une feuille
thiscomponent.CurrentController.ActiveSheet = thiscomponent.sheets.GetByName("SECTEUR")
end sub
Ici on définit une procédure avec un passage de paramètre
sub ACTIVE(nom_feuille as string)
'j'active une feuille
thiscomponent.CurrentController.ActiveSheet = _
thiscomponent.sheets.GetByName(nom_feuille)
end sub
Puis la procédure TEST appelle cette procédure
sub test
call ACTIVE("SECTEUR")
end sub
CREER UNE FEUILLE
Ici on crée une feuille, c'est-à-dire qu’on mémorise la position d’une feuille donnée puis on crée une nouvelle feuille après la
position
Sub CREE_FEUILLE
'je pointe en mémoire la feuille qui sera placée avant la nouvelle feuille
lafeuille= thiscomponent.sheets.GetByName("SECTEUR")
'je récupère sa position
indexSecteur=lafeuille.RangeAddress.sheet
'je crée une nouvelle feuille après cette position
thiscomponent.sheets.InsertNewByName("NEW",indexSecteur+1)
End Sub
COMPTER LE NOMBRE DE FEUILLES
Ici on dénombre le nombre de feuilles
Sub COMPTER_FEUILLE
'je compte le nombre de feuilles
msgbox thiscomponent.sheets.count
End Sub
AFFICHER LE NOM DE LA 1ER FEUILLE
Ici on pointe sur la 1ère feuille qui a un index de 0
Sub NOM_FEUILLE
'j'affiche le nom d'une feuille
msgbox thiscomponent.sheets(0).name
End Sub
CREER UNE FEUILLE APRES LA DERNIERE
Ici on créer une nouvelle feuille après la dernière
SUB CREER_LAST
'je récupère l'index de la dernière feuille
dernum=thiscomponent.sheets.count-1
'je récupère le nom de la dernière feuille
dernom = thiscomponent.sheets(dernum).name
'je pointe sur la dernière feuille
lafeuille= thiscomponent.sheets.GetByName(dernom)
'je récupère sa position
indexSecteur=lafeuille.RangeAddress.sheet
'je crée une nouvelle feuille après cette position
thiscomponent.sheets.InsertNewByName("NEW",indexSecteur+1)
END SUB
Ici le même code est compacté sur deux lignes
SUB CREER_LAST2
'je pointe sur la dernière feuille
lafeuille= thiscomponent.sheets.GetByName( thiscomponent.sheets(thiscomponent.sheets.count-1).name)
'je crée une nouvelle feuille après cette position
thiscomponent.sheets.InsertNewByName("NEW",lafeuille.RangeAddress.sheet + 1)
END SUB
RENDRE INVISIBLE UNE FEUILLE
Ici on rend invisible la feuille Feuille2
Sub INVISIBLE_FEUILLE
'je rends invisible une feuille
ThisComponent.sheets.GetByName("Feuille2").IsVisible=False
End Sub
RENOMMER UNE FEUILLE
Ici on change le nom d’une feuille
SUB RENOMMER_FEUILLE
'je pointe sur la feuille
maFeuille=thiscomponent.sheets.GetByName("Feuille2")
'je change le nom
maFeuille.name="GESTION"
End Sub
SUPPRIMER UNE FEUILLE
Ici on supprime la feuille Feuille2
SUB SUPPRIMER_FEUILLE
'je supprime la feuille "Feuille2"
thiscomponent.sheets.removeByName("Feuille2")
END SUB
TESTER L’EXISTENCE D’UNE FEUILLE
Ici on teste l’existence d’une feuille
SUB EXIST_FEUILLE
'je teste l'existence du nom d'une feuille
if thiscomponent.sheets.HasByName("Feuille2")= false then
msgbox "Cette feuille n'existe pas"
end if
LISTER TOUTES LES FEUILLES
Ici on énumère le nom de toutes les feuilles du classeur et on les stocke dans une nouvelle feuille appelée
LISTE
Sub LIST_FEUILLE
'je récupère le nombre de feuille dans le classeur
DERNUM=thiscomponent.sheets.count
'je dimensionne un tableau en mémoire
DIM T(DERNUM) AS STRING
'je boucle pour récupérer les noms des feuilles
FOR I=0 to DERNUM-1
'je stocke dans le tableau
T(I)=thiscomponent.sheets(I).name
NEXT
'je récupère le nom de la dernière feuille
DERNOM=thiscomponent.sheets(dernum-1).name
'je crée une nouvelle feuille après ma dernière. je pointe sur la dernière feuille
lafeuille= thiscomponent.sheets.GetByName( DERNOM)
'je crée une nouvelle feuille après cette position
thiscomponent.sheets.InsertNewByName("LISTE",lafeuille.RangeAddress.sheet + 1)
'Je pointe sur une feuille spécifique
maFeuille=ThisComponent.Sheets.GetByName("LISTE")
'je stocke le nom des feuilles dans les cellules
FOR I=0 to DERNUM-1
'je stocke dans le tableau
maFeuille.GetCellByPosition(0,I).string = T(I)
NEXT
End Sub
CREER 1 FEUILLE PAR MOIS
Ici on crée 12 feuilles auquelles on donne le nom des mois
Sub 12MOIS
DIM T(12) AS STRING
T(1)="janvier" : T(2)="février" : T(3)="Mars" : T(4)="Avril" : T(5)="Mai"
T(6)="juin" : T(7)="Juillet" : T(8)="Août" : T(9)="Septembre" : T(10)="Octobre"
T(11)="Novembre" : T(12)="Décembre"
'je crée 12 nouvelles feuilles
for i=1 to 12
'je récupère le nombre de feuille dans le classeur
DERNUM=thiscomponent.sheets.count
'je récupère le nom de la dernière feuille
DERNOM=thiscomponent.sheets(dernum-1).name
'je pointe sur la dernière feuille
lafeuille= thiscomponent.sheets.GetByName( DERNOM)
'je crée une nouvelle feuille après cette position
thiscomponent.sheets.InsertNewByName(T(I),lafeuille.RangeAddress.sheet + 1)
next i
End Sub
Prochain article : La gestion des cellules
D'autres informations à
: http://www.openoffice.org/fr/Documentation/Index.html