Bonsoir,

somphone chanthasensack a écrit :
Bonjour

J’ai un classeur de 12 feuilles, chaque feuille correspond à un mois de l’année et reconnue par le numéro du mois renseigné dans chaque feuille dans une cellule. Y a t il un astuce lors de l’ouverture de ce classeur d’activer uniquement la feuille correspondant au mois en cours.
Merci d’avance pour votre aide.


Je pense que seule une macro serait à même de répondre au besoin.

Voici une idée déclinée en 2 variantes.

La première ne tient compte que du nom des feuilles (ie : "Mois 01", "Mois 02", etc)

La seconde parcourt l'ensemble des feuilles du classeur actif à la recherche du nom de la feuille correspondant au mois en cours.

== macros ==

sub SheetByMonth1()

 dim aCurDate

 aCurDate = Month(Now)

 if aCurDate < 10 then aCurDate = "0" & aCurDate
thisComponent.currentController.activeSheet = thisComponent.Sheets.getByName( "Mois " & aCurDate )

end sub

sub SheetByMonth2()

 dim aCurDate
 dim oDoc     as object
 dim oCurCont as object
 dim oEnum    as object
 dim oSheet   as object
 dim bFind    as boolean

 aCurDate = Month(Now)
 bFind    = false
 oDoc     = thisComponent
 oEnum    = oDoc.getSheets.createEnumeration
 oCurCont = oDoc.currentController

 do while oEnum.hasMoreElements AND Not bFind
  aSheet = oEnum.nextElement
  if aCurDate = oSheet.getCellRangeByName("G1").value then bFind = true
 loop

 if bFind then
  if aCurDate < 10 then aCurDate = "0" & aCurDate
  oCurCont.activeSheet = oDoc.Sheets.getByName( "Mois " & aCurDate )
 else
  msgbox( "Pas de feuille pour le mois courant", 48, "Hum !!!" )
 end if

end sub


NB :
- ici la cellule G1 (sur chaque feuille) contient le numéro de mois
- il faudra veiller à ajouter des contrôles pour éviter les crashs
- d'autres solutions sont envisageables

Francois Gatto

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à