Bonjour,
J'ai un problème simple mais je n'ai trouvé aucune solution ni dans le forum, ni via Google.
Je voudrais connaître la couleur de fond d'une cellule qui est modifiée dynamiquement par une MFC.
Avec Xray, j'ai parcouru tout ce qui pouvait me semble possible d'indiquer la couleur de la cellule :
- la cellule directement bien sur
- l'objet Contrôleur car c'est lui qui gère l'affichage
À chaque fois j'obtiens -1 comme couleur de fond et Default comme style.
Est-ce que c'est possible via l'API ? (à part lire les conditions de mises en forme et les tester une par une par macro...).
Merci de vos lumières
Jacques
[Résolu] [Calc] Lire la couleur d'une cellule gérée par MFC
Modérateur : Vilains modOOs
Règles du forum
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 !
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 !
[Résolu] [Calc] Lire la couleur d'une cellule gérée par MFC
Dernière modification par JacquesF le 11 févr. 2018 14:22, modifié 1 fois.
LibreOffice 5.4.7.2 Linux (et parfois Windows 7)
- Hubert Lambert
- SuppOOrter
- Messages : 1214
- Inscription : 06 avr. 2016 09:26
Re: [Calc] Comment lire la couleur d'une cellule gérée par M
Bonjour,
Bonne soirée.
Je crains malheureusement que ce ne soit le seul moyen d'y parvenir...JacquesF a écrit :à part lire les conditions de mises en forme et les tester une par une par macro...
Bonne soirée.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Re: [Calc] Comment lire la couleur d'une cellule gérée par M
Merci Hubert,
J'avais peur que ce soit la seule méthode, mais je ne désespère pas encore d'une autre piste
Bon WE à toi
Jacques
J'avais peur que ce soit la seule méthode, mais je ne désespère pas encore d'une autre piste
Bon WE à toi
Jacques
LibreOffice 5.4.7.2 Linux (et parfois Windows 7)
- Dude
- IdOOle de la suite
- Messages : 25142
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: [Calc] Comment lire la couleur d'une cellule gérée par M
Cette question n'a pas de sens.
C'est comme vouloir modifier un moteur de voiture si on souhaite changer de route.
Une MFC utilise une formule ou teste le contenu et applique un style de cellule.
L'accès passe par la structure com.sun.star.sheet.XSheetConditionalEntry
La documentation ci-dessus n'a pas été localisée, une traduction de ta part serait donc la bienvenue.
C'est comme vouloir modifier un moteur de voiture si on souhaite changer de route.
Une MFC utilise une formule ou teste le contenu et applique un style de cellule.
L'accès passe par la structure com.sun.star.sheet.XSheetConditionalEntry
La documentation ci-dessus n'a pas été localisée, une traduction de ta part serait donc la bienvenue.
Re: [Calc] Comment lire la couleur d'une cellule gérée par M
Merci Dude,
Mais je viens de parcourir la documentation indiquée et l'API, sans tout comprendre je dois l'avouer, je ne suis pas un programmeur de métier.
Je ne trouve pas de moyen pour accéder à l'information directement.
Quand à savoir si ma question a un sens, je trouve que quand on a une MFC complexe sur une grande plage de cellules, et donc de multiples conditions, il pouvait être plus simple de lire le style appliqué à une cellule pour connaître son "état" plutôt que de refaire les mêmes tests que la MFc avec une macro.
Je vais trouver une autre piste en ce cas.
Bonne fin de WE.
Jacques
Quand à la traduction, mon niveau d'anglais courant est très basique, il est un peu meilleur quand on parle d'informatique. Voici ce que je te propose :
Mais je viens de parcourir la documentation indiquée et l'API, sans tout comprendre je dois l'avouer, je ne suis pas un programmeur de métier.
Je ne trouve pas de moyen pour accéder à l'information directement.
Quand à savoir si ma question a un sens, je trouve que quand on a une MFC complexe sur une grande plage de cellules, et donc de multiples conditions, il pouvait être plus simple de lire le style appliqué à une cellule pour connaître son "état" plutôt que de refaire les mêmes tests que la MFc avec une macro.
Je vais trouver une autre piste en ce cas.
Bonne fin de WE.
Jacques
Quand à la traduction, mon niveau d'anglais courant est très basique, il est un peu meilleur quand on parle d'informatique. Voici ce que je te propose :
Une cellule peut être formatée automatiquement avec un format conditionnel, dépendant de son contenu ou du résultat d’une formule.
Un format conditionnel se compose de plusieurs entrées de condition contenant la condition et le nom d'un style de cellule.
Le style de la première condition rencontrée, vrai ou "non nul", est appliqué à la cellule.
Une cellule ou un objet de plage de cellules contient les propriétés ConditionalFormat et ConditionalFormatLocal.
Ces propriétés renvoient l'interface com.sun.star.sheet.XSheetConditionalEntries du conteneur de format conditionnel com.sun.star.sheet.TableConditionalFormat.
Les objets des deux propriétés sont égaux, sauf pour la représentation des formules.
La propriété ConditionalFormatLocal utilise le nom des fonctions dans le langage courant.
Après qu'un format conditionnel ait été modifié, il doit être réinséré dans l'ensemble des propriétés de la cellule ou de la plage de cellules.
Une condition d’entrée d’un format conditionnel est représenté par le service com.sun.star.sheet.TableConditionalEntry.
Il implémente deux interfaces :
- L’interface com.sun.star.sheet.XSheetCondition obtient et définit l'opérateur, la première et la deuxième formule et l'adresse de base pour les références relatives.
- L’interface com.sun.star.sheet.XSheetConditionalEntry obtient et définit le nom du style de cellule.
Le service com.sun.star.sheet.TableConditionalFormat contient toutes les conditions de format et retourne l’objet com.sun.star.sheet.TableConditionalEntry.
L’interface com.sun.star.sheet.XSheetConditionalEntries insère les nouvelles conditions et les retire.
La méthode addNew() insère une nouvelle condition. Il attend une séquence de l’objet com.sun.star.beans.PropertyValue.
Les propriétés suivantes sont supportées :
- Operator: Une constante com.sun.star.sheet.ConditionOperator décrivant l’opération à effectuer.
- Formula1 et Formula2: Chaînes de caractères contenant les valeurs ou les formules à évaluer. Formula2 n’est utilisé que si la proproété Operator contient BETWEEN ou NOT_BETWEEN.
- SourcePosition: Une structure qui contient l’adresse de base pour les références de cellules relatives dans les formules.
- StyleName: Le nom du style de cellule à appliquer.
La méthode removeByIndex() supprime une entrée de conditions à la position indiquée.
La méthode clear() supprime toutes les entrées de conditions.
L’exemple suivent applique un format conditionnel à une plage de cellule. Il utilise le style de cellule "MyNewCellStyle" qui est appliqué à chaque cellule contenant une valeur supérieure à 1, xSheet est l'interface com.sun.star.sheet.XSpreadsheet d'une feuille de calcul.
LibreOffice 5.4.7.2 Linux (et parfois Windows 7)