[Résolu] Plus de 3 formatages conditionnels

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur: Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.

[Résolu] Plus de 3 formatages conditionnels

Messagepar Zeb62 » 29 Mai 2007 21:21

Bonsoir à tous,

Y aurait il un moyen de faire plus de 3 conditions avec le formatage conditionnel ?

Je m'explique j'ai une cellule. Chacune comprend un texte au choix. Je voudrais que selon le choix effectué, cette même cellule se mette dans une couleur donnée.

Ex si le texte est "Français", la case où l'on trouve ce texte se colore en bleu
si le texte est "Maths", la case se colore en rouge...
etc... mais avec plus de 3 variantes (en fait une dizaine de possibilités).

En vous remerciant
Dernière édition par Zeb62 le 30 Mai 2007 11:12, édité 1 fois.
Ooo 2.3.0 + Winxp sp2
Zeb62
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 11
Inscrit le : 29 Mai 2007 19:26

Messagepar Jeff » 30 Mai 2007 07:00

Bonjour et bienvenue sur ce forum,

De nombreuses questions ont déjà été abordées ici, pour t'en convaincre, utilise la recherche (Rechercher est en haut de page), avec pour critère formatage and conditionnel en section Tableur, tu trouve par exemple ceci (et bien d'autre fils de discussion) :
http://user.services.openoffice.org/fr/ ... nditionnel

En espérant que cela réponde à ta question...

A + :wink:
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.7 sur Emmabuntus Debian Edition 3 Buster 32 bits, sur Ubuntu 18.04.1 x64 (Bionic Beaver), et sur Win 10 pro x64
Jeff
GourOOu
GourOOu
 
Message(s) : 8343
Inscrit le : 18 Sep 2006 10:40
Localisation : France

Messagepar Zeb62 » 30 Mai 2007 08:19

J'ai bien vu les exemples que tu pointes,
Mais j'aimerai que le style s'applique directement sur la cellule où l'on marque le texte, pas dans une cellule à côté comme dans l'exemple ici :
http://user.services.openoffice.org/fr/ ... 091438.ods

Ainsi je choisis mon texte et selon mon choix, la cellule où je suis se colore (pas celle d'à côté comme avec l'exemple avec les chanteurs cité avant).

Je sais pas si je me fais bien comprendre.
Ooo 2.3.0 + Winxp sp2
Zeb62
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 11
Inscrit le : 29 Mai 2007 19:26

Voici mon fichier...

Messagepar Zeb62 » 30 Mai 2007 08:35

Voici mon fichier,
http://user.services.openoffice.org/fr/ci-joint/fichier/2007/05/30-092932.xls

Je souhaiterai par exemple que dans la feuille Lundi, la cellule B4 se colore (suivant un style défini avant), d'une certaine façon, si j'y sélectionne Franç, d'une autre façon si j'y sélectionne Fr/ORLF, d'une autre... etc (13 variantes)

J'ai déjà créé des styles mais je n'arrive pas à appliquer les méthodes dans les posts cités...

Je vous remercie du temps passé à m'aider. :P
Ooo 2.3.0 + Winxp sp2
Zeb62
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 11
Inscrit le : 29 Mai 2007 19:26

Messagepar Jeff » 30 Mai 2007 08:36

J'avais compris ta demande, et te proposais un contournement, le formatage conditionnel fait de façon classique n'étant pas possible avec plus de 3 conditions.
En effet, on ne peut jongler que sur l'attribution des styles grâce à la formule du même nom.
Voir par exemple cet exemple sur le site de Christian pour avoir une idée de la mise en place, la colonne d'origine pouvant être masquée.

Pour réaliser un formatage conditionnel directement sur la cellule avec plus de 3 condition, je pense qu'il faudrait que tu t'oriente vers la section Macros et API du forum ; une recherche sur form* and conditionnel en section Macros et API te retourne par exemple ceci : http://user.services.openoffice.org/fr/ ... tener.html
Mais il s'agit là d'une autre question...:wink:

A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.7 sur Emmabuntus Debian Edition 3 Buster 32 bits, sur Ubuntu 18.04.1 x64 (Bionic Beaver), et sur Win 10 pro x64
Jeff
GourOOu
GourOOu
 
Message(s) : 8343
Inscrit le : 18 Sep 2006 10:40
Localisation : France

...

Messagepar Zeb62 » 30 Mai 2007 08:49

Cà a l'air pas mal, comme exemple.
Si je comprends bien, il faudrait que je crée une macro qui se lance avec mon classeur et qui s'occupe elle même du formatage...

Maintenant si je dois en passer par les macros, je vais vite avoir du mal je crois. J'ai bien essayé d'adapter l'exemple fourni en bas dans le post que tu cites Jeff, mais il ne se passe rien sauf quand je choisis Franç là il applique le style BleuFranç sinon le reste çà ne marche pas... :cry:

Dans ce cas, il faut bien que je fasse :
Macro \ Gérer les macros \ Open office basic dans le classeur, que je recopie l'exemple en remplaçant comme suit :

REM ***** BASIC *****

Option Explicit

global oDoc as Object
global oListener as Object

Sub o_ListenersAdd
oDoc= thisComponent
oListener = CreateUnoListener( "o_", "com.sun.star.util.XModifyListener" )
oDoc.AddModifyListener(oListener)
End Sub

Sub o_ListenersRemove
oDoc.RemoveModifyListener(oListener)
End Sub

Sub o_Modified(oEvent)
'MsgBox "Modif..."
dim oEnCours as object
oEnCours = thiscomponent.currentSelection
if oEnCours.supportsService("com.sun.star.sheet.SheetCell") then 'Ne travaille que si la sélection en cours est une cellule
select case oEnCours.string 'Test selon la chaine contenue dans la cellule en cours
case "Franç"
if oEnCours.CellStyle <> "BleuFranç" then
oEnCours.CellStyle="BleuFranç"
end if
case "Fr/ORLF"
if oEnCours.CellStyle <> "Fr/ORLF" then
oEnCours.CellStyle="Fr/ORLF"
end if
case "Fr/Vocab"
if oEnCours.CellStyle <> "Fr/Vocab" then
oEnCours.CellStyle="Fr/Vocab"
end if
case "Maths"
if oEnCours.CellStyle <> "Maths" then
oEnCours.CellStyle="Maths"
end if
case "Mat/Prob"
if oEnCours.CellStyle <> "Mat/Prob" then
oEnCours.CellStyle="Mat/Prob"
end if
case "Mat/Géom"
if oEnCours.CellStyle <> "Mat/Géom" then
oEnCours.CellStyle="Mat/Géom"
end if
case "Hist"
if oEnCours.CellStyle <> "Hist" then
oEnCours.CellStyle="Hist"
end if
case "Géogr"
if oEnCours.CellStyle <> "Géogr" then
oEnCours.CellStyle="Géogr"
end if
case "EdCiv"
if oEnCours.CellStyle <> "EdCiv" then
oEnCours.CellStyle="EdCiv"
end if
case "Arts"
if oEnCours.CellStyle <> "Arts" then
oEnCours.CellStyle="Arts"
end if
case "EPS"
if oEnCours.CellStyle <> "EPS" then
oEnCours.CellStyle="EPS"
end if
case "Angl"
if oEnCours.CellStyle <> "Angl" then
oEnCours.CellStyle="Angl"
end if
case "Scien"
if oEnCours.CellStyle <> "Scien" then
oEnCours.CellStyle="Scien"
end if
case else 'Les autres couleurs sont à compléter.
if oEnCours.CellStyle <> "Default" then
oEnCours.CellStyle="Standard" 'Le test "Else" sert pour les autres cas => réapplique le style Standard
end if
end select
end if
end sub

Sub o_Disposing
End Sub

Puis que j'execute la macro...
Dernière édition par Zeb62 le 30 Mai 2007 09:12, édité 1 fois.
Ooo 2.3.0 + Winxp sp2
Zeb62
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 11
Inscrit le : 29 Mai 2007 19:26

Messagepar Jeff » 30 Mai 2007 09:02

Un petit exemple avec formule STYLE avec ton tableau (à toi de rajouter les styles voulus) :

http://user.services.openoffice.org/fr/ci-joint/fichier/2007/05/30-100112.ods

Le choix se fait en colonne B, puis affichage en colonne C avec le style voulu ; ensuite, la colonne B peut être masquée.

J'ai juste fais lundi...

Dans ta liste de validité, tu as un espace avant chaque nom de matière, il faut en tenir compte dans la formule.

A +

EDIT : j'avais pas vu tes réponses...
Pour une macros, tu doit poster dans la section éponyme.
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.7 sur Emmabuntus Debian Edition 3 Buster 32 bits, sur Ubuntu 18.04.1 x64 (Bionic Beaver), et sur Win 10 pro x64
Jeff
GourOOu
GourOOu
 
Message(s) : 8343
Inscrit le : 18 Sep 2006 10:40
Localisation : France

génial Jeff !!

Messagepar Zeb62 » 30 Mai 2007 09:20

MERCI mille fois Jeff !

:D :D :D

Cà y est j'ai réussi avec la macro !
En fait il fallait prendre en compte le fait que dans la liste de validité, il y a un espace juste avant chaque mot !
Dans la macro je n'avais pas écrit chaque choix avec un espace avant...

J'ai corrigé et çà marche !!

Je te remercie vivement !!
Ooo 2.3.0 + Winxp sp2
Zeb62
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 11
Inscrit le : 29 Mai 2007 19:26

Messagepar syrill » 13 Juin 2007 13:34

j'ai rencontrer le même problème ... après m'être bien prie le chou dessus j'ai fini par résoudre cela comme ca :

j'ai une liste de 8 choix dans la cellule A1. les 4 premier choix colorent le fond en rouge les 4 derniers en bleu. ( cela fonctionnerai même si ce n'était pas 4 et 4 )

Formatage conditionnel :

condition 1 -
Formule est -
(OU(A1="choix1";A1="choix2";A1="choix3";A1="choix4"))


condition 2 -
Formule est -
(OU(A1="choix5";A1="choix6";A1="choix7";A1="choix8"))

Voila si cela peut servir a d'autre ... :wink:
2.2.0 sous xp home sp2
syrill
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 13 Juin 2007 13:24


Retour vers Tableur

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : aravis, thejp et 13 invité(s)