OVH Cloud OVH Cloud

macro solution

42 réponses
Avatar
j-claude
Bonjour,


Sur une feuille de calcul (feuil1) , j'ai une cellule dont le résultat
change plusieurs fois dans la journée suivant les valeurs entrées dans d'
autres cellules.
Ce que je voudrais : récupérer dans une autre feuille(par ex feuil2) , la
dernière valeur de la journée ainsi que la dernière valeur de la journée
suivante dans une cellule sur la ligne en dessous et ainsi de suite jusqu'à
la fin du mois.
Comme il s'agit de respecter une moyenne d'encaisse , il me faudrait
également sous la dernière cellule (ou sur tte autre cellule) affichée sur
la nouvelle feuille,la moyenne des valeurs des cellules précédentes.

Le fin du fin serait que les dates s'affichent dans les cellules
adjacentes (automatiquement avec la date système).

Ainsi : feuil1 ->>>> C1 (valeur change plrs fois /jr. ; récup.dernière
valeur).

Je voudrais :

Sur feuil2 ->>>>par ex.

01/07/04 (en A1)
copie valeur de feuil1 !C1 (en B1)
02/07/04 (en A2)
copie valeur de feuil1 !C1 (en B2)
03/07/04 (en A3)
copie valeur de feuil1 !C1 (en B3
affichage dans une cellule quelconque de la
moyenne , au jour le jour , des valeurs précédentes.


J'ai cherché dans les bouquins avec ou sans lutrin (bonsoir Serge :=) ,
dans ce forum et ailleurs , mais malgré la verte couleur de l'espoir , je
fais chou blanc.


Votre aide serait la bienvenue

cordialement,

j-claude

2 réponses

1 2 3 4 5
Avatar
LeSteph
Si mes neurones ne se sont pas trop endommagés dans l'indéfectible ambiance
du sud-ouest dans trois semaines bien tassées.
Sinon d'autres passeront probablement par ce fil et trouveront entre temps
moyen de simplifier un peu tout cela car je n'en suis pas pleinement
satisfait.
Thierry était bien parti, mais il est en vacances aussi, je crois!
Si tu ne retrouves plus le fil... utilise comme conseillé outlook Express,
en cliquant sur En-têtes tu devrais retrouver,
sinon au pire remets un post ...et si tu dois me réveiller pour ma bal tu
enlève
le Le et remplace la frite par free...

:-) A bientôt

LeSteph


"j-claude" a écrit dans le message de
news:410ab70e$0$29380$
bonsoir Le Steph,

merci de tes explications très détaillées.
je mets en forme demain (car aujourd'hui , la forme , je l'ai plus
car

le vendredi c'est pas mal chargé au boulot;-)

tes formules vont me permettre de me perfectionner un peu plus car
je

cherche bien sûr à comprendre ce que je fais.
la macro "intégrale" est plus ardue pour un presque débutant.

je crois que cette année mon voyage de vacances (en sept.) va se
limiter

à explorer la galaxie "Excel".

je te souhaite d'autres découvertes tout bientôt.

penseras tu à retrouver le fil à ton retour, ou devrai je me
manifester

à nouveau dans 2 ou 3 semaines?

je ne manquerai pas de progresser en essayant de créer une
colonne "V" avec 365 jrs deVacances...


à+ , sûrement à ton retour de vacances que je te souhaite
meilleures encore que celles des années passées...

je te tiens au courant.


cordialement,

j-claude

















"LeSteph" a écrit dans le message news:
410a0c8e$0$1892$
Bonjour,

Et ben voila:
***
D'abord tu vérifies que dans
Outils/MacroComplémentaire
Utilitaire d'analyse et Utilitaire d'analyseVBA sont cochés
Sinon charger les .Xla correspondantes depuis ton CD d'origine.

Ainsi, NB.JOURS.OUVRES doit être disponible dans les fonctions de Dates
***
Ensuite ligne titres:
A B C D
E
Date du jour Montant moyenne NbJours Férié

.....

En c2: ²
En d2: =SI(OU(B2=0;B2="");0;1)
.....
En c3: =SI(B3<>"";SI(MOIS(A2)<>MOIS(A3);B3;((C2*D2)+(B3))/D3);"")
En d3: =NB.JOURS.OUVRES("01/"&MOIS(A3)&"/"&ANNEE(A3);A3;E3)
Ces deux dernières sont à recopier vers le bas
.....
La colonne E te servira à saisir les dates fériées (outre les samedi
dimanche)
(on aurait pu aussi utiliser une matrice)
*****
Juste un Hic il faut taper 0 dans les Samedi Dimanche vu que la macro
n'opérera pas ces jours là
***
Voici ce que cela donne:
mar 13/07/2004 153,89 549,02 9,00
mer 14/07/2004 0,00 549,02 9,00 14/07/2004
jeu 15/07/2004 485,22 493,31 11,00
ven 16/07/2004 263,53 474,16 12,00
sam 17/07/2004 0,00 474,16 12,00
dim 18/07/2004 0,00 474,16 12,00
lun 19/07/2004 110,11 446,15 13,00
mar 20/07/2004 286,92 434,78 14,00
mer 21/07/2004 891,22 465,21 15,00
jeu 22/07/2004 21,11 437,45 16,00
ven 23/07/2004 164,29 421,38 17,00
sam 24/07/2004 0,00 421,38 17,00
dim 25/07/2004 0,00 421,38 17,00
lun 26/07/2004 712,46 437,56 18,00
mar 27/07/2004 771,55 455,13 19,00
mer 28/07/2004 273,28 446,04 20,00
jeu 29/07/2004 733,67 459,74 21,00
ven 30/07/2004 461,35 459,81 22,00
sam 31/07/2004 0,00 459,81 22,00
dim 01/08/2004 0,00 0,00 0,00
lun 02/08/2004 232,92 232,92 1,00
mar 03/08/2004 845,15 539,03 2,00


Si ça le fait , c'est que j'ai compris et je verrais au retour
comment transformer tout cela en une Macro
Samedi je serai encore là et après...
oui je crois que les vacances seront appréciées...
..je remplis d'avance ma colonne E
;-D

LeSteph



"j-claude" a écrit dans le message de
news:41096493$0$1895$
sinon bonnes vacances ,

au moins bonne nuit !

(je bosse demain tte la journée, je reprends le tout
samedi)





à+















"j-claude" a écrit dans le message news:
41095c1c$0$1896$
rebonsoir le steph,

enfin un bon début :

en "A" c'est bon
en "B" l'instruction de ta macro fait son travail.

en "C" j'ai tiré la formule vers le bas et ça fonctionne
comme


je
voulais (au changement de mois on recommence une nouvelle moyenne).

et c'est là que je comprends enfin pourquoi tu me
parlais




des
jours ouvrés!

en fait il faudrait enlever les dimanches , les jours
fériés



(et
les jrs de grève ;-).

j'ai essayé de supprimer les lignes relatives aux jours non
travaillés mais alors la formule ne colle plus (elle tient compte de
la



ligne effacée).

comment faire , là aussi on est près du but...

à+


"j-claude" a écrit dans le message news:
41090f65$0$24063$
'mande pardon de m'immiscer dans le fil, sur la pointe de mes
bottes



,(car , moi aussi je suis un rural).

juste pour savoir si tu as testé la dernière macro,
car




chez
moi, j'ai beau mettre un peu de poésie dedans , il y a la partie
suivante


qui ne rime pas avec le reste:
'moyenne du mois en C
repa = Month(.Range("a" & ligne))
repb = Year(.Range("a" & ligne))
.Range("c" & ligne) = _
Evaluate("sumproduct((month(feuil2!A1:a65000)=" & repa &
" )*(year(feuil2!A1:a65000)=" & repb & " ) *(feuil2!b1:b65000))/
sumproduct((month(feuil2!A1:a65000)=" & repa &
")*(year(feuil2!A1:a65000)=" & repb & "))")



j'ai beau tenter les césures mais au bout c'est
toujours


la
déconfiture (dans ma rurale lorraine , celle de groseilles est
d'ailleurs


pas mal, cette année ;-)

en fait , la colonne "c" reste vide...

il y a des messages d'erreur sur sumproduct et d'autres...


Rappel : on est bien d'accord même si tu sembles réticent au
manque




de
poésie d'une encaisse (normal puisqu'il n'y a ni Rimbaud ni
Baudelaire




que
ça a inspiré).

en "A" la date
OK



en "B" la dernière valeur du jour OK

en "C" la moyenne des valeurs des cellules
précédentes




du
mois "EN COURS".(ainsi le 1 aout , le compteur de la moyenne
doit





se
remettre à 0.
pas


OK

en "D" ton average est optionnel car ça me donne la
moyenne


de
TOUT ce qui précède. je prends
qd.





même.




j'insiste un peu car comme diraient certains
gardiens:



dans notre métier on est si près du...


à+ ???


























"AV" a écrit dans le message news:

t'as lu la dernière phrase ?


Achhh... j'étais même pas arrivé jusque là, tellement la
surprise......




AV

























Avatar
LeSteph
Bonjour JClaude,
Dans les starting block..

http://cocosteph.free.fr/farfouille/Aldatest.xls
Si cela peut aider voici le classeur test
voir Feuil2 évidemment
;-)
LeSteph


"j-claude" a écrit dans le message de
news:410ab70e$0$29380$
bonsoir Le Steph,

merci de tes explications très détaillées.
je mets en forme demain (car aujourd'hui , la forme , je l'ai plus
car

le vendredi c'est pas mal chargé au boulot;-)

tes formules vont me permettre de me perfectionner un peu plus car
je

cherche bien sûr à comprendre ce que je fais.
la macro "intégrale" est plus ardue pour un presque débutant.

je crois que cette année mon voyage de vacances (en sept.) va se
limiter

à explorer la galaxie "Excel".

je te souhaite d'autres découvertes tout bientôt.

penseras tu à retrouver le fil à ton retour, ou devrai je me
manifester

à nouveau dans 2 ou 3 semaines?

je ne manquerai pas de progresser en essayant de créer une
colonne "V" avec 365 jrs deVacances...


à+ , sûrement à ton retour de vacances que je te souhaite
meilleures encore que celles des années passées...

je te tiens au courant.


cordialement,

j-claude

















"LeSteph" a écrit dans le message news:
410a0c8e$0$1892$
Bonjour,

Et ben voila:
***
D'abord tu vérifies que dans
Outils/MacroComplémentaire
Utilitaire d'analyse et Utilitaire d'analyseVBA sont cochés
Sinon charger les .Xla correspondantes depuis ton CD d'origine.

Ainsi, NB.JOURS.OUVRES doit être disponible dans les fonctions de Dates
***
Ensuite ligne titres:
A B C D
E
Date du jour Montant moyenne NbJours Férié

.....

En c2: ²
En d2: =SI(OU(B2=0;B2="");0;1)
.....
En c3: =SI(B3<>"";SI(MOIS(A2)<>MOIS(A3);B3;((C2*D2)+(B3))/D3);"")
En d3: =NB.JOURS.OUVRES("01/"&MOIS(A3)&"/"&ANNEE(A3);A3;E3)
Ces deux dernières sont à recopier vers le bas
.....
La colonne E te servira à saisir les dates fériées (outre les samedi
dimanche)
(on aurait pu aussi utiliser une matrice)
*****
Juste un Hic il faut taper 0 dans les Samedi Dimanche vu que la macro
n'opérera pas ces jours là
***
Voici ce que cela donne:
mar 13/07/2004 153,89 549,02 9,00
mer 14/07/2004 0,00 549,02 9,00 14/07/2004
jeu 15/07/2004 485,22 493,31 11,00
ven 16/07/2004 263,53 474,16 12,00
sam 17/07/2004 0,00 474,16 12,00
dim 18/07/2004 0,00 474,16 12,00
lun 19/07/2004 110,11 446,15 13,00
mar 20/07/2004 286,92 434,78 14,00
mer 21/07/2004 891,22 465,21 15,00
jeu 22/07/2004 21,11 437,45 16,00
ven 23/07/2004 164,29 421,38 17,00
sam 24/07/2004 0,00 421,38 17,00
dim 25/07/2004 0,00 421,38 17,00
lun 26/07/2004 712,46 437,56 18,00
mar 27/07/2004 771,55 455,13 19,00
mer 28/07/2004 273,28 446,04 20,00
jeu 29/07/2004 733,67 459,74 21,00
ven 30/07/2004 461,35 459,81 22,00
sam 31/07/2004 0,00 459,81 22,00
dim 01/08/2004 0,00 0,00 0,00
lun 02/08/2004 232,92 232,92 1,00
mar 03/08/2004 845,15 539,03 2,00


Si ça le fait , c'est que j'ai compris et je verrais au retour
comment transformer tout cela en une Macro
Samedi je serai encore là et après...
oui je crois que les vacances seront appréciées...
..je remplis d'avance ma colonne E
;-D

LeSteph



"j-claude" a écrit dans le message de
news:41096493$0$1895$
sinon bonnes vacances ,

au moins bonne nuit !

(je bosse demain tte la journée, je reprends le tout
samedi)





à+















"j-claude" a écrit dans le message news:
41095c1c$0$1896$
rebonsoir le steph,

enfin un bon début :

en "A" c'est bon
en "B" l'instruction de ta macro fait son travail.

en "C" j'ai tiré la formule vers le bas et ça fonctionne
comme


je
voulais (au changement de mois on recommence une nouvelle moyenne).

et c'est là que je comprends enfin pourquoi tu me
parlais




des
jours ouvrés!

en fait il faudrait enlever les dimanches , les jours
fériés



(et
les jrs de grève ;-).

j'ai essayé de supprimer les lignes relatives aux jours non
travaillés mais alors la formule ne colle plus (elle tient compte de
la



ligne effacée).

comment faire , là aussi on est près du but...

à+


"j-claude" a écrit dans le message news:
41090f65$0$24063$
'mande pardon de m'immiscer dans le fil, sur la pointe de mes
bottes



,(car , moi aussi je suis un rural).

juste pour savoir si tu as testé la dernière macro,
car




chez
moi, j'ai beau mettre un peu de poésie dedans , il y a la partie
suivante


qui ne rime pas avec le reste:
'moyenne du mois en C
repa = Month(.Range("a" & ligne))
repb = Year(.Range("a" & ligne))
.Range("c" & ligne) = _
Evaluate("sumproduct((month(feuil2!A1:a65000)=" & repa &
" )*(year(feuil2!A1:a65000)=" & repb & " ) *(feuil2!b1:b65000))/
sumproduct((month(feuil2!A1:a65000)=" & repa &
")*(year(feuil2!A1:a65000)=" & repb & "))")



j'ai beau tenter les césures mais au bout c'est
toujours


la
déconfiture (dans ma rurale lorraine , celle de groseilles est
d'ailleurs


pas mal, cette année ;-)

en fait , la colonne "c" reste vide...

il y a des messages d'erreur sur sumproduct et d'autres...


Rappel : on est bien d'accord même si tu sembles réticent au
manque




de
poésie d'une encaisse (normal puisqu'il n'y a ni Rimbaud ni
Baudelaire




que
ça a inspiré).

en "A" la date
OK



en "B" la dernière valeur du jour OK

en "C" la moyenne des valeurs des cellules
précédentes




du
mois "EN COURS".(ainsi le 1 aout , le compteur de la moyenne
doit





se
remettre à 0.
pas


OK

en "D" ton average est optionnel car ça me donne la
moyenne


de
TOUT ce qui précède. je prends
qd.





même.




j'insiste un peu car comme diraient certains
gardiens:



dans notre métier on est si près du...


à+ ???


























"AV" a écrit dans le message news:

t'as lu la dernière phrase ?


Achhh... j'étais même pas arrivé jusque là, tellement la
surprise......




AV

























1 2 3 4 5