Je suis actuellement en stage RH et je dois mettre en place un planning des absences. J'ai donc créé un dossier excel avec un onglet pour chaque mois. pour chaque jours j'ai réussi à faire une mise en forme conditionnel avec plusieurs conditions, mais maintenant je suis une fois de plus bloqué ... voici la macro :
Code : Tout sélectionner
REM ***** BASIC *****
global nbModif as integer
sub main
Projet_planning("Janvier")
end sub
function Projet_planning(Janvier as string) as string
Dim controleur As Object, maFeuille As Object
Dim sel As Object, listeCell As Object, selectionCell As Object
Dim uneCellule As Object, enumCellules As Object
Dim lesFamillesDeStyles as object, lesStylesDeCellules as object
Dim nomDuStyle as string
controleur = ThisComponent.CurrentController
maFeuille = controleur.ActiveSheet
lesFamillesDeStyles = ThisComponent.StyleFamilies
lesStylesDeCellules = lesFamillesDeStyles.getByName("CellStyles")
sel = maFeuille.getCellRangeByName(Janvier)
selectionCell = sel.queryContentCells(com.sun.star.sheet.CellFlags.STRING + com.sun.star.sheet.CellFlags.VALUE)
enumCellules = selectionCell.getCells
listeCell = enumCellules.CreateEnumeration
Do While listeCell.hasMoreElements
uneCellule = listeCell.nextElement
nomDuStyle = "Style pour valeur = " & uneCellule.String
if uneCellule.CellStyle <> nomDuStyle then
if lesStylesDeCellules.hasByName(nomDuStyle) then
uneCellule.CellStyle = nomDuStyle
elseif uneCellule.CellStyle <> "Default" then
uneCellule.CellStyle = "Default"
endif
endif
Loop
Projet_planning = ""
end function
function Test(oZone as object) as string
nbModif = nbModif + 1
Test = nbModif & " modifs"
end function
Sub Macro1
End Sub
Etant donné que la société à plusieurs agences (30), j'aimerai essayé de simplifier au maximum la macro pour qu'en cas d'évolution ou de changement à y apporté, il y ait le minimum de travail. J'ai donc commencé à regarder et je pense que la solution serait de faire un tableau général avec un tableau contenant les 12 mois, et qu'a partir de ce tableau, la macro effectue dans tout les onglets les modifications.
Il faudrait donc apporter une modification à la macro concernant :
- la page active : "maFeuille = controleur.ActiveSheet",
- mais aussi faire une boucle for sur le tableau avec tout les mois mis dans un onglet "général"
Pensez vous que ma solution est bonne et si vous avez des conseils afin de m'aiguiller dans la conduite de mon projet ????