Calcul conditionnel en fct du format de ¢

arscy -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut à vous pro-pc-ien(ne)s!

Je suis en train de faire un peu de calcul, et je souhaiterais mettre au point une formule qui me permette d'additionner des nombres en fonction de leur format/casse.

ex: tableau avec nombres en format standard, et nombres affichés en GRAS.
but: faire la somme de ce qui n'est qu'écrit en gras
et faire de même avec ceux qui sont en format "standard".

J'ai fait le tour de nombre de posts, mais je n'ai pas trouvé d'indices là dessus. Est-ce faisable et si oui, pouvez-vous m'aider svp?
merciii
A voir également:

3 réponses

Raymond PENTIER Messages postés 58993 Date d'inscription   Statut Contributeur Dernière intervention   17 363
 
Non, ce n'est pas faisable de manière classique ;
mais peut-être que les pro de VBA sauront te fabriquer une macro qui le fasse ...
0
arscy
 
dans ce cas est-il possible de faire un système intermédiaire? genre en fonction de la couleur de la case? (somme de nombres dont la case est de telle ou telle couleur) ? (pas du nombre de cases hein, qu'on se comprenne bien, mais de leur contenu!
0
Raymond PENTIER Messages postés 58993 Date d'inscription   Statut Contributeur Dernière intervention   17 363 > arscy
 
Non !

Les calculs se font avec des opérateurs, des données et des fonctions ; jamais avec des formats !
0
Raymond PENTIER Messages postés 58993 Date d'inscription   Statut Contributeur Dernière intervention   17 363
 
Opérateurs =
+ - * /
Données =
valeurs numériques (nombres, dates, heures) ; textes ; valeurs logiques (VRAI, FAUX) ; références de cellule ; noms définis ...
Fonctions =
maths-trigo (ARRONDI, PUISSANCE, SOMME ...) ; date-heure (JOURSEM, AUJOURDHUI, TEMPSVAL ...) ; statistiques (ECART.MOYEN, FREQUENCE, MOYENNE ...) ; texte ( CNUM, DROITE, MAJUSCULE, NBCAR, STXT, CAR ...) ; logique (SI, OU, SIERREUR, FAUX ...) ; informations (ESTNA, ESTTEXTE, TYPE ...) etc.
Formats =
Police (gras, italique, souligné, exposant, indice, fonte, couleur de police, majuscule/minuscule)
Cellule (couleur de remplissage, bordure, alignement, retrait, fusion, orientation)
Format d'affichage des valeurs numériques (date, heure, pourcentage, scientifique, fraction, spécial)
0
JvDo Messages postés 1978 Date d'inscription   Statut Membre Dernière intervention   859
 
Bonjour,

1) Petite question : le format gras provient-il d'une mise en forme conditionnelle?
Si c'est le cas, il te suffit de faire un SOMMEPROD() qui reprend la condition de ta MFC, sans oublier de multiplier par tes valeurs pour bien obtenir leur somme.

Sinon ... c'est plus embêtant .
Le souci du format, c'est que ça ne déclenche pas d'évènement onchange permettant de faire le calcul par macro ou de lancer un recalcul par exemple.

2) Si le fait de devoir faire F9 pour recalculer le résultat de ta somme de valeurs en gras ne te gêne pas, il est possible de répondre à ta question de différentes façons, avec ou sans macro d'ailleurs.

Sans macro :
utilise Morefunc de Laurent Longre avec la formule
=SOMMEPROD(XLM.LIRE.CELLULE(20;mesdonnées)*mesdonnées)

Cette fonction utilise le LIRE.CELLULE() d'antan. Malgré sa volatilité par défaut, il faut forcer un recalcul pour qu'elle se mette à jour.

avec macro :
créer la fonction suivante
Function sommegras(mesdonnées)
Application.Volatile
For Each vcell In mesdonnées
If vcell.Font.Bold Then sommegras = sommegras + vcell.Value
Next
End Function

mettre la formule
=sommegras(mesdonnées)
dans la feuille de calcul.
Le F9 recalculera la formule.

Autres pistes :
3) Le raccourci clavier du passage en gras est CTRL+SHIFT+G.
Il est alors possible de dérouter ce raccourci avec cette macro
Sub gras()      'CTRL + SHIFT + G
For Each vcell In Selection
vcell.Font.Bold = Not vcell.Font.Bold
Next
Selection.Dependents.Calculate
End Sub

En lui affectant bien sûr la séquence du raccourci.
Cette procédure ajoute le recalcul des cellules dépendantes de la sélection en cours

4) la personnalisation du ruban qui remplace le code de passage en gras comme au point 3)
mais, c'est franchement pas l'heure des callbacks.....

cordialement
0
arscy
 
Merci beaucoup pour toutes ces suggestions/solutions JvDo!
Non le format ne provient pas d'une mise en forme conditionnelle, l'idée étant juste de permettre de distinguer les items.
À la base je souhaite me servir de la formule en question pour de la compta.
En gros: j'ai 2 colonnes qui résument toutes les autres (caisse ou banque), et l'idée c'est de faire en sorte que les autres colonnes atterrissent dans la bonne case(caisse/banque). Ex: régler l'EDF par virement --> banque; etc...
Donc je me disais par exemple, pourquoi ne pas changer le format de l'écriture pour que le bin's aille directement au bon endroit (après application d'une formule, of course).
Comme c'est de la compta (#permanent) je ne souhaite pas me servir du F9 (comme il y a d'autres personnes qui vont y jeter un oeil, faudrait pas un oubli quelconque de ma part ou de la leur!).
D'après ce que tu m'as montré, l'option n°3 semblerait la plus adéquate.
Je m'en vais de ce pas expérimenter mes premières macros!
Mercii!
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

En gros: j'ai 2 colonnes qui résument toutes les autres (caisse ou banque), et l'idée c'est de faire en sorte que les autres colonnes atterrissent dans la bonne case(caisse/banque)
Je pense qu'il serait plus simple que tu ajoutes une colonne Caisse que tu coches avec un x.
Une simple formule te permettra de répartir.
Et tant qu'à faire une macro en faire une qui te mette le x à la saisie des libellés sans ambiguïté.

eric
0
arscy
 
Mmh, l'idée est bien vue, mais ça voudrait dire que je dois réaliser un doublon de colonne pour chaque item, et pour l'occasion, j'en ai déjà tellement (une bonne 30aine je pense). J'ai eu l'occasion d'appliquer des systèmes comme celui que tu décris (un X pour me valider un item binaire voire même plus de conditions) mais pour des données simples. Là j'ai trop de colonnes pour aller dans ce sens, ça devient un bor**l monstre (sur le visuel c'est déjà très chargé, mais là... il va y avoir des morts! ;-) ). Mais sur le plan théorique c'est vrai que ça m'évite d'avoir à passer par des concepts qui me sont totalement étrangers, je garde l'idée en réserve.
Je vous poste ici un exemple de ce que je veux réaliser. Il faut juste imaginer que ça s'étend loin loin loin vers la droite ;-)

http://cjoint.com/?EBrsZORSVdi

Pour l'instant je bûche sur l'option n°3 de JvDo: le système macro semble adéquat si j'ai bien compris l'idée, mais je dois approfondir mes connaissances qui avoisinent pour l'instant le 0 kelvin).
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Apparement tu es sur libre office, impossible d'ouvrir ton .ods
Précise le dans le titre pour tes demandes de macros car elles ne sont pas compatibles excel.
Et pas forcément besoin de dupliquer. Par exemple un somme.si() te permet de choisir ta somme avec ou sans x.
Enfin je dis ça mais je n'ai pas réussi à voir ton fichier...

eric
0
arscy > eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention  
 
aw my bad :-( c'est effectivement sur OPEN OFFICE
le SI( me ramènera à la même formule brutale du Si x 30 colonnes x2 conditions (une seconde pour imaginer la longueur de la formule, et donc le nombre de passages si je me rate à un passage)
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
N'ayant pas ton fichier je ne peux répondre.
0