incrément cellules

  • Initiateur de la discussion Tigrous
  • Date de début
T

Tigrous

Guest
Bonjour à tous

Dans une feuille excel , je récupère des données venant d'une autre feuille pour les mettre en liste et gérer un graphique .
exemple
cellule C10=Calendrier!H149
cellule C11=Calendrier!O149
cellule C12=Calendrier!V149
cellule C13=Calendrier!H158
cellule C14=Calendrier!O158
cellule C15=Calendrier!V158
...
la récupération des données est toujours décalée de 9 lignes
comment peut-on copier/incrémenter rapidement les cellules
pour ne pas être obligé de changer à chaque fois le chiffre des lignes

Merci de votre coopération
 

tonio59

XLDnaute Junior
Bonjour tout le monde,

D'abord, je suis vraiment super content d'être membre car il y a vraiment des masters ici . . . j'ai vraiment beaucoup à apprendre ! ! ! ! Mais je compte bien devenir moi aussi un master ! ! !

Donc, j'ai repris la formule de André . . . que je n'ai pas trop compris d'abord. Ensuite, je l'ai modifié très légèrement et vous trouverez le résultat avec le fichier joint.
Maintenant, en A2 tu peux saisir n'importe quelle date et out tableau moyenne changera pour ce mettre à jour . . . => ta base de donnée est beaucoup plus facilement maniable et interrogeable.

Dite moi ce que vous en pensez . . . des avis de masters m'intéressent.

Ciao à pluche. :) [file name=recopier_20050616082616.zip size=22008]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/recopier_20050616082616.zip[/file]
 

Pièces jointes

  • recopier_20050616082616.zip
    21.5 KB · Affichages: 12

andré

XLDnaute Barbatruc
Salut Tonio59 et les autres forumeurs,

D'abord, heureux que tu aies apprécié la formule, merci.
Je t'accorde que, bien qu'étant simple, elle n'est pas facile à comprendre.
Il faut la décortiquer, argument par argument, pour en comprendre le fonctionnement.
Mais toujours à ta disposition (et à celle des autres) pour fournir de plus amples explications.

En répondant à la question de Tigrous, je ne me suis pas intéréssé aux tenants et aboutissants de son fichier, uniquement à lui prouver qu'il ne faut pas mettre trop rapidement en doute les possibiltés du tableur XL.

Sa question n'était d'ailleurs pas d'ordre informatique, mais purement de mathématique.

De plus, dans la feuille Calendrier, il y a des fonctions faisant partie des macros complémentaires, qu'Xl ne traduit pas (encore) automatiquement, et je ne me suis pas donné la peine de le faire.

Le modification que tu as apportée à la formule est certainement judicieuse, je ne puis te le dire, Tigrous confirmera.

Mais il y a toutefois un petit problème.
Comme tout le monde le sait (lol), la fonction NO.SEMAINE() n'est pas exacte, aux normes européennes, pour l'année 2005.
Cette fonction retourne pour la cellule A21 (13.06.05) la semaine 25, alors que c'est la 24.
Le correction doit avoir été faite quelque part, puisque les résultats sont exacts.
Si la même erreur se trouve dans la feuille Calendrier, pas de problème, mais dans le cas contraire, qu'adviendra-t-il lorsque ce fichier sera employé pour les années 2006, 2007, ... ?

Ândré.
 

tonio59

XLDnaute Junior
Salut andré et tout les autres,

Effectivement, la formule NO.SEMAINE n'est pas excate pour l'année 2005. Mais dans le fichier, cette erreur est corrigé en mettant -1 à chaque fois. Donc pour 2005, plus de problème . Mais aund est-il pour 2006, 2007, ... la question est ardue. La solution est peut être de rajouter une feuille pour corriger manuellemnt l'erreur une pour toute en début d'année . . . je tente un premier jet et je vous envoie le fichier à tous . . . on verra bien

A pluche :)
 

tonio59

XLDnaute Junior
re,

voila le fichier modifier. Maintenant, il peut s'adapter à toutes lesz années, il suffit juste de renseigner le numéro de la première semaine utilisée pour que l'erreur (s'il y en a) soit corriger . . .

Franchement, j'ai galèré pour réussir ce truc, la solution n'est pas parfaite surement, mais il semble que ça marche. Car l'avantage maintenant, c'est qu'on peut commencer les tableaux de données à une autre semaine que la 5 . . . ça a pas été facile, mais vous pouvez le tester dans tous les sens, ça doit marcher.

Please, éprouver le fichier, torturé le pour voir s'il fonctionne vraiment.

Maintenant, il faut que je bosse, sinon je vais me faire virer de mon CDD vite fait bien fait.

A pluche

PS: Pour les masters, donnez moi votre avis . . . où n'existe-t-il pas une solution plus simple. [file name=recopier_20050616111934.zip size=22341]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/recopier_20050616111934.zip[/file]
 

Pièces jointes

  • recopier_20050616111934.zip
    21.8 KB · Affichages: 17

Monique

Nous a quitté
Repose en paix
Bonjour,

Deux modif.

En D4 de la feuille 'Correction' :
=NO.SEMAINE(A4)<>ENT(MOD(ENT((A4-2+(JOURSEM(1)=7)*6)/7)+0,6+((JOURSEM(1)=7)*208);52+5/28))+1
ou bien :
=NO.SEMAINE(Calendrier!B18)<>ENT(MOD(ENT((Calendrier!B18-2+(JOURSEM(1)=7)*6)/7)+0,6+((JOURSEM(1)=7)*208);52+5/28))+1
ou bien tout simplement en D15 de la feuille 'Calendrier' :
=ENT(MOD(ENT((B18-2+(JOURSEM(1)=7)*6)/7)+0,6+((JOURSEM(1)=7)*208);52+5/28))+1

En B19 de la feuille 'Calendrier' :
=INDEX($AA$1:$AA$7;JOURSEM(B18;2))
Si tu commences par la valeur du dimanche en AA1, puis du lundi en AA2 :
=INDEX($AA$1:$AA$7;JOURSEM(B18))
 

tonio59

XLDnaute Junior
Bonjour Monique,

Je ne comprend pas à quoi servent ces modifs.

la première car je ne vois pas ce que vas faire la formule . . . en fait, je ne comprends pas la formule.

la deuxième ne semble pas nécessaire, car on va toujours commencer la semaine par lundi, cela ne changera jamais.


J'ai peut être mal compris ce que tu voulais changer . . .

Mais j'attends avec impatience tes explications car je suis surement passé à côté de quelque chose.

Merci d'avance.

A pluche
 

Monique

Nous a quitté
Repose en paix
Re,

En B19 de la feuille 'Calendrier', cette formule :
=INDEX($AA$1:$AA$7;JOURSEM(B18;2))
remplace celle-ci :
=SI(JOURSEM(B18;2)=1;$AA$1;SI(JOURSEM(B18;2)=2;$AA$2;SI(JOURSEM(B18;2)=3;$AA$3;SI(JOURSEM(B18;2)=4;$AA$4;SI(JOURSEM(B18;2)=5;$AA$5;SI(JOURSEM(B18;2)=6;$AA$6;SI(JOURSEM(B18;2)=7;$AA$7;'')))))))
Différence : 'seulement' 158 caractères de moins.
La formule Index :
Index(plage;n° d'index)
Il se trouve que les n° des jours de la semaine peuvent se transformer en 1, 2, 3, etc
ça te donne :
Index(plage AA1:AA7;n° 1) pour le lundi si JOURSEM(Réf;2)
Index(plage AA1:AA7;n° 2) pour le mardi si JOURSEM(Réf;2)
Index(plage AA1:AA7;n° 3) pour le mercredi si JOURSEM(Réf;2)

On peut avoir 160 caractères en moins
si tu commences par la valeur du dimanche en AA1, puis du lundi en AA2 :
=INDEX($AA$1:$AA$7;JOURSEM(B23))
ça te donne :
Index(plage AA1:AA7;n° 1) pour le dimanche si JOURSEM(Réf)
Index(plage AA1:AA7;n° 2) pour le lundi si JOURSEM(Réf)
Index(plage AA1:AA7;n° 3) pour le mardi si JOURSEM(Réf)

C'est ce qu'on appelle couper une formule en 6 (et pas les cheveux en 4)

La formule :
=ENT(MOD(ENT((B18-2+(JOURSEM(1)=7)*6)/7)+0,6+((JOURSEM(1)=7)*208);52+5/28))+1
répare l'erreur qu'il y a certaines années pour les Européens dans la fonction No.Semaine
Si on veut, on peut mettre celle-ci :
=ENT(MOD(ENT((B18-2)/7)+0,6;52+5/28))+1
mais elle n'est pas compatible avec l'option 'Calendrier depuis 1904'
Je ne l'expliquerai pas, c'est quelqu'un de doué qui a inventé ça.
Avec cette formule en feuille 'Calendrier', tu peux supprimer la feuille 'Correction semaine'
C'est ce qu'on appelle couper un fichier en 3 (et pas les cheveux en 4)

Message édité par: Monique, à: 16/06/2005 13:54
 

tonio59

XLDnaute Junior
re,

merci Monique pour toutes ces explications . . . c'est déjà beaucoup plus clair. C'est vrai que la deuxième formule n'est pas du tout évidente à comprendre . . . on peut se demander d'où elle sort, mais il y en a qui ont une autre façon de réfléchir...

encore merci.

A pluche
 

Monique

Nous a quitté
Repose en paix
Re,

Suite…
Une petite modif en plus :
un format conditionnel, couleurs alternées 3 lignes sur 6, que les lignes soient ou non filtrées.

Une grosse modif : il y avait des résultats faux en cas de dates postérieures à la date max de la feuille de saisie.
Une formule matricielle pour trouver la date max (formule nommée)
Dans la feuille 'Moyenne', une formule conditionnelle pour ne pas dépasser cette date.
[file name=RecopierDateV2.zip size=21917]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/RecopierDateV2.zip[/file]
 

Pièces jointes

  • RecopierDateV2.zip
    21.4 KB · Affichages: 9

tonio59

XLDnaute Junior
re monique,

J'ai vu le fichier que tu as modiier et je n'ai qu'une remarque . . . il est top . Je n'ai pas encore eu le temps de rearder toutes les formules que tu as rajouté (et oui, il faut bosser quand le patron attend des résultats). Mais dès que je peux j'essaie de comprendre car il y des fonctions comme decaler ou equiv que je ne maitrisse pas trop, et les calculs matricielles c'est parei !

En plus, je crois qu'on a bossé pour rien, car celui qui a lancé le sujet ne semble plus s'y intéresser ! ! ! ! :silly:

Enfin, j'aurais appris beaucoup de choses . . .

A pluche sur un prochain fil.
Encore merci.
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal