christianwtd a écrit :
endive a écrit :
christianwtd a écrit :
endive a écrit :
Bonjours à tous,

Je cherche à créer une formule assez longue et répétitive.
C'est pour la création d'un agenda (c'est aussi pour m'exercer, je pense qu'il y en à déjas des fait)

j'ai 24 colonne pour 24 h (de D à Z) nommer sur la ligne 5 (5h-6h ; 6h-7h...)
Les jours sont dans la colonne B (un jour par ligne)

Dans la colonne C je voudrais concatener les événements de la journée avec leur horaire QUE s'il existe: =CONCATENER(SI(D6=0;"";D$5);SI(D6=0;"";" ");D6;" / ";SI(E6=0;"";E$5);SI(E6=0;"";" ");E6;" / "; etc j'usqu'a Z ça fonctionne mais la formule est assez fastidieuse à faire à la main et pour des modifs aussi. Vu que la chaîne SI(D6=0;"";D$5);SI(D6=0;"";" ");D6;" / "; reviens 24 fois dans la formule avec juste les numéros de colonne qui change, il est peut être possible "d'automatiser" la formule. J'ai trouvé la fonction adresse qui me donne dans la colonne voulue les référence voulu. (en D1 et D2 pour D5 et D6; E1 et E2...) donc je fait dans D3: =concatener("SI(";D2;"=0;";"""";";"D$5;");SI(";D6;"=0;"";" ");";D6;";" ";";) Ce qui ne marche absolument pas, les ; et les " ce mélangeant j'imagine! :-!

Avez vous des idées pour faire des choses de ce genre?
Je cherche souvent des formules compliqués mais j'arrive peut à les tester !

Merci

endive


Bonsoir,

CONCATENER est une fonction inutile (sauf compatibilité) qui peut se remplacer par le symbole &, mais qui assemble des textes et non des valeurs. Hors, je crois comprendre que tu cherches à faire des opérations avec des heures. Ensuite tu empiles des SI les uns dans les autres. Ce n'est pas interdit, mais tu alourdis la formule à chaque SI supplémentaire. Dernière précision, la fonction ADRESSE n'est réellement utile qu'utilisée avec INDIRECT. Enfin, je n'ai pas compris le but final. Peux-tu donner quelques précisions afin d'essayer de t'aider.

Bon surf,
Christian

Oui depuis plusieurs essais je me suis rendu compte de la lourdeurs de la formule voulu!
Pour être plus précis il y avais 2 questions:

1-Il y a t'il un autre moyen lors de la création d'une formule longue (et lourde) de répété les parties presque semblable?
ex =SI(B2=0;0;B$1+B2)+SI(C2=0;0;C$1+C2)..........+SI(AA2=0;0;AA$1+AA2)

Oui, si c'est c'est uniquement des additions. Toutefois il est peut-être utile de décomposer tes formules dans plusieurs cellules
dans une cellule : = SI(B2=0;0;B$1+B2)
dans une autre : = SI(C2=0;0;C$1+C2)
etc..., et au final la somme de ces cellules.

J'ai quand même réussi à faire cella mais de façon pas très pratique (pour le moins!):
Dans une autre feuille (feuille2) j'ai décomposé ma formule ainsi :

En B1: SI(
En C1: B
En D1: 2=0;0;
En E1 : B
En F1: $1+
En G1: B
En H1: 2)+
j'ai ensuite remplis les colonnes en glissant les cellules B1,D1,F1 et H1 et rempli C1, E1 et G1 d'une suite alphabétique jusqu'à AA.
(J'ai enlevé le + en F26 car c'est la fin de la formule)
Puis en I1 =CONCATENER(A1;B1;C1;D1;E1;F1;G1;H1) Copier jusqu'à I26 .
Puis copier I1:I26 en J1:J26 en collage spécial sans les formules.
Puis en feuille1.A1 =(collage de J1:J26)
et j'ai bien ma formule mais qui n'est pas considéré comme tel!
Alors copié/collé dans un bloc-note et recopié/collé dans la cellule: sa marche!!!
Bon j'ai passé l'après midi à ça, mais c'est pour apprendre!
Il doit peut être des moyens plus pratique pour faire cella?

Si j'ai bien compris, tu as créé une formule, ou plus exactement le texte de la formule que tu as ensuite assemblé.
oui
Même si c'est du bricolage, ça prouve que tu te débrouilles puisque ça marche. Mais j'en reviens à ce que je disais : si tu débutes avec Calc (je me trompe ?),
Non mêmes si ça fait longtemps que je débute!
il ne faut pas hésiter à progresser en détaillant les formules quitte à les réassembler par la suite, quand tout fonctionne.

2-La création d'un agenda:
En colonne B les dates
En colonne D à AA les 24 heures (avec en ligne 1 :0h-1h; 1h-2h; ......23h-24h) En colonne C Le concatènage des événements et de leurs horaires* SI* ils existent. Si en K10 (soit le 5 février 7h-8h) "petit dej" et en R10 (5 fév 14h-15h) "Sieste"
Je veut en C10 : "7h-8h petit déj / 14h-15h Sieste"
J'ai donc avec la technique décrite fait:
=CONCATENER(SI(D10=0;"";D$1);SI(D10=0;"";" ");D10;" / ";SI(E10=0;"";E$1);SI(E10=0;"";" ");E10;" / "; etc jusqu'à AA
Essayes d'oublier CONCATENER.
si j'enlève CONCATENER il ne m'affiche que le résultat du 1er SI.
Ensuite en D10, qu'est ce qu'il y a dans la cellule ? Du texte ou une valeur ? Je ne suis pas trop bien.
Non il s'agit d'un texte eventuel concernant le lundi 5 fevrier (ligne 10) de 00h à 1h (colonne D) Si la cellule est vide la valeur est 0, si elle ne l'est pas la valeurs est diferente de 0 d'ou: (SI(D10=0[si la cellule est vide];""[ne rien mettre];D$1[sinon mettre la valeur de D$1 soit 0h-1h) puis: (SI(D10=0[si la cellule est vide];""[ne rien mettre];" "[sinon mettre lun espace])
puis: D10 [mettre le texte du 5 fev de 0h-1h, même s'il n'y a rien)
et j'avais oublié: (SI(D10=0[si la cellule est vide];""[ne rien mettre];" / "[sinon mettre un / entouré de deux espace (ou à la ligne)])


La formule étant trop grande je l'ai scindé en 3 dans AB;AC et AD que je re-concatène en C.
Sa marche mais il me semble que j'ai fait très compliqué?
Je voudrait remplacer le " / " de la formule par un retour à la ligne dans cellule, est ce possible?

Le retour à la ligne ne marche pas, il faut passer par une macro. (sauf option renvoi ligne automatique)
Dommage, il n'y a pas de caractère pour cella?
Sinon tant pis mais la lisibilité de l'agenda le rend inutilisable des qu'il y a trop d'horaire prit ou que les textes sont long.


Merci

Endive
PS: J'ai laissez tombé la fonction ADRESSE  :-!

Bon surf,
Christian

Merci de ton aide
Endive


--
Si tout se passe bien, c'est là qu'il faut commencer à s'inquiéter (loi de Murphy)

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à