[Résolu] [Calc] Format conditionnel à plus de 3 conditions

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
loulou22
Fraîchement OOthentifié
Messages : 5
Inscription : 21 avr. 2009 09:26

[Résolu] [Calc] Format conditionnel à plus de 3 conditions

Message par loulou22 »

Bonjour à tous,

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 ????
Dernière modification par Bidouille le 17 juin 2009 15:21, modifié 3 fois.
Raison : mise en page macro à l'aide des balises "code" ; merci de le faire la prochaine fois
Open Office 3.0
Jeff
GourOOu
GourOOu
Messages : 9632
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Calc]Mise en forme conditionnel à plus de 3 conditions

Message par Jeff »

Bonjour,

Je ne suis pas très calé en macro, cependant, en utilisant la recherche (le champ recherche est en haut de page à droite) sur le critère Mise en forme conditionnel à plus de 3 conditions, tu obtiens notamment : http://user.services.openoffice.org/fr/ ... conditions

Bonnes recherches, et bonnes trouvailles :wink:
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Calc]Mise en forme conditionnel à plus de 3 conditions

Message par jeanmimi »

Bonjour,
Et en complément de ce qu'écrit Jeff, dis toi que les forts en macro préfèreront tester sur ton fichier plutôt que de tout reconstruire. Donc si tu veux le mettre en ligne, au format OOo Calc .ods, tu peux le faire.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
loulou22
Fraîchement OOthentifié
Messages : 5
Inscription : 21 avr. 2009 09:26

Re: [Calc]Mise en forme conditionnel à plus de 3 conditions

Message par loulou22 »

Merci pour votre aide j'ai enfin trouver uen solution !
Open Office 3.0