Une petite fonction de cellule qui permet de créer de nouvelles feuilles à la volée. Elle utilise deux arguments.
-un argument pour définir le nom, soit par référence à une cellule contenant un nom, soit directement saisit entre doubles quottes dans la formule.
-un deuxième argument numérique, qui permet de définir si les feuilles de même nom existantes doivent-être écrasées ou non (1 on ne fait rien, 2 on écrase).
Code : Tout sélectionner
=CREER_FEUILLE(A1;2)Code : Tout sélectionner
=CREER_FEUILLE("Janvier_2015";1)Code : Tout sélectionner
Function CREER_FEUILLE(arg1 As string, arg2 as long)
Select Case arg2
Case 1 'Si la feuille existe déjà on ne fait rien sans avertir
if Thiscomponent.Sheets.hasByName(arg1) then
exit function
else
Thiscomponent.Sheets.insertNewByName(arg1, Thiscomponent.Sheets.count)
end if
Case 2 'Si la feuille existe déjà on l'écrase sans avertir
if Thiscomponent.Sheets.hasByName(arg1) then
Thiscomponent.Sheets.removeByName(arg1)
Thiscomponent.Sheets.insertNewByName(arg1, Thiscomponent.Sheets.count)
else
Thiscomponent.Sheets.insertNewByName(arg1, Thiscomponent.Sheets.count)
end if
End Select
End FunctionCode : Tout sélectionner
Case 3 'Si la feuille existe déjà on demande si elle doit-être écrasée
if Thiscomponent.Sheets.hasByName(arg1) then
if MsgBox("La feuille :" & (arg1) & " existe déjà voulez vous l'écraser", 4) = 6 then
Thiscomponent.Sheets.removeByName(arg1)
Thiscomponent.Sheets.insertNewByName(arg1, Thiscomponent.Sheets.count)
else
Stop
end if
else
Thiscomponent.Sheets.insertNewByName(arg1, Thiscomponent.Sheets.count)
end ifAprès y a plein d'autres contextes d'utilisation.
Je tiens à préciser que je n'ai pas testé avec AOO ne l'ayant pas sur cette machine.
A+
| Ajout : Attention : le deuxième argument avec la valeur 2 doit-être utilisé avec précaution. En effet, lorsque les cellules sont recalculées, toutes les feuilles déjà crées sont écrasées par de nouvelles feuilles vierges |
