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

10 réponses

1 2 3 4 5
Avatar
sabatier
:-)))))))))))
parle pas de choses qui fâchent, LeSteph, dans min villach' (comme dirait
l'abominable émetteur de CPT dont encore un rugueux exemple figure plus
bas), y vont même plus avoir droit à l'appellation Beaujolais mais à Vin de
Pays ou un truc dans ce genre, ce qui me fait dire que la formule des
retaurateurs "vous voulez boire quoi avec ça? du vin ou du beaujolais"
n'était pas totafi innocente....
jps

"LeSteph" a écrit dans le message de
news:410438fb$0$31399$
Bonsoir votre cailloutterie serait elle due au terrain siliceux dont les
oxydes bienfaiteurs
sévissent en terre Morgonnée
;-)
"sabatier" a écrit dans le
message

de news:
non seulement cette phrase me plaît (merci, j-claude) mais parvenir à la
dire à toute allure est sûrement un meilleur exercice de diction que les
cailloux dans la bouche du père démosthène...
jps

"j-claude" a écrit dans le message de
news:410427b5$0$6063$
mon micro sans vos macros , c'est un peu comme un chien sans ses
crocs...












Avatar
ru-th
Excuses du retard,
mais été parti voir un polar coréen qui passait pendant une semaine à 22:30
à la grande ville

Reprenons,
Tu es gentil
parce que la macro était pas terrible
absence de remise à jour de la valeur de C1....
et compréhension du problème ...partiel

tu gardes les autres éléments et tu modifies worsheet_calculate

Private Sub Worksheet_Calculate()
On Error Resume Next
With Sheets("feuil2")
If [c1] <> valeur Then
ligne = .[a65536].End(xlUp).Row + 1
If Int(Now) = Int([max(feuil2!a:a)]) Then ligne = ligne - 1
End If
.Range("a" & ligne) = Now
.Range("b" & ligne) = [c1]
valeur = [c1]
End With
End Sub


Pour la moyenne , précise sur combien de jours tu la souhaites

a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"j-claude" a écrit dans le message de
news:410427b5$0$6063$
bonsoir Le Steph,

c'est un problème en suspens depuis des mois que tu viens de régler
en

quelques minutes (à vous dégoûter de vouloir écrire des macros soi même,
mais je vais persévérer)...
j'obtiens bien la dernière valeur du jour mais je dois entrer les dates
manuellement ; avec Thierry les dates étaient auto. mais j'avais ttes les
valeurs d'une même journée...

peut-être en combinant les deux... :=))

merci beaucoup

et continuez vos zoeuvres sur le forum , mon micro sans vos
macros , c'est un peu comme un chien sans ses crocs...

à+ cordialement

j-claude






Avatar
j-claude
bonsoir Le Steph,

c'est un problème en suspens depuis des mois que tu viens de régler en
quelques minutes (à vous dégoûter de vouloir écrire des macros soi même,
mais je vais persévérer)...
j'obtiens bien la dernière valeur du jour mais je dois entrer les dates
manuellement ; avec Thierry les dates étaient auto. mais j'avais ttes les
valeurs d'une même journée...

peut-être en combinant les deux... :=))

merci beaucoup

et continuez vos zoeuvres sur le forum , mon micro sans vos
macros , c'est un peu comme un chien sans ses crocs...

à+ cordialement

j-claude
Avatar
LeSteph
Alors nous en boirons tant qu'il en restera!

"sabatier" a écrit dans le message
de news:
:-)))))))))))
parle pas de choses qui fâchent, LeSteph, dans min villach' (comme dirait
l'abominable émetteur de CPT dont encore un rugueux exemple figure plus
bas), y vont même plus avoir droit à l'appellation Beaujolais mais à Vin
de

Pays ou un truc dans ce genre, ce qui me fait dire que la formule des
retaurateurs "vous voulez boire quoi avec ça? du vin ou du beaujolais"
n'était pas totafi innocente....
jps

"LeSteph" a écrit dans le message de
news:410438fb$0$31399$
Bonsoir votre cailloutterie serait elle due au terrain siliceux dont les
oxydes bienfaiteurs
sévissent en terre Morgonnée
;-)
"sabatier" a écrit dans le
message

de news:
non seulement cette phrase me plaît (merci, j-claude) mais parvenir à
la



dire à toute allure est sûrement un meilleur exercice de diction que
les



cailloux dans la bouche du père démosthène...
jps

"j-claude" a écrit dans le message de
news:410427b5$0$6063$
mon micro sans vos macros , c'est un peu comme un chien sans ses
crocs...
















Avatar
j-claude
bonsoir,
Thierry c'est bon maintenant pour la valeur de la dernière cellule du
jour.
pour la moyenne , j'ai ave(c) rage essayé de l'intégrer dans la macro
mais j'ai finalement choisi d'aller au plus simple :
entrer dans une cellule quelconque :
=moyenne(B1:B31),
ce qu'il aurait fallu , c'est intégrer l'instruction dans la macro de façon
que le résultat apparaisse sous la ligne du dernier jour entré. (ex : le
29/07 on voit la moyenne du 01/07 au 28/07 ).
Le pb. sera peut-être que pour le mois suivant , la moyenne reparte bien au
1 du nouveau mois.

Mais là aussi, le plus simple mais le moins élégant serait à chaque
changement de mois , d'entrer une nouvelle formule manuellement avec une
nouvelle plage de la colonne "B".

Si tu pouvais donner une suite...

Si j'ose me permettre , les polars coréens, c'est comme le bon ou
le mauvais vin ? on peut en abuser ou pas??? ;-)



bonsoir Le Steph ,

je n'avais pas pensé à incrémenter les dates sur plrs. mois...

pour la moyenne , je peux faire comme plus haut.


à+ , cordialement

j-claude
Avatar
LeSteph
Bonjour ,
Effectivement on a zappé la question subsidiaire
"j-claude" a écrit
mais j'ai finalement choisi d'aller au plus simple :
entrer dans une cellule quelconque :
=moyenne(B1:B31),
???

Si ton tableau n'est pas "syndiqué" (bosse 7j/7j, en se servant cruellement
de quelqu'un pour le faire tourner)
En c2 formule²
En c3 formule:
=SI(B3<>"";SI(MOIS(A2)<>MOIS(A3);B3;((C2*JOUR(A2)+(B3))/JOUR(A3)));"")

Mais cela ne vaut que si chaque jour de feuil2! représente le total d'un
jour dans feuil1!
Donc maintenant que C1 est là il faudrait savoir mieux ce qu'il y a dedans
ex le mercredi2 total du mercredi2 ou total du mercredi2+mardi1

Sinon il faudrait combiner avec NB.JOURS .OUVRES ou un truc dans le
genre....

A préciser donc moyenne de quoi sur quoi ...

LeSteph


"j-claude" a écrit dans le message de
news:41068b92$0$31399$

bonsoir,
Thierry c'est bon maintenant pour la valeur de la dernière cellule du
jour.
pour la moyenne , j'ai ave(c) rage essayé de l'intégrer dans la macro
mais j'ai finalement choisi d'aller au plus simple :
entrer dans une cellule quelconque :
=moyenne(B1:B31),
ce qu'il aurait fallu , c'est intégrer l'instruction dans la macro de
façon

que le résultat apparaisse sous la ligne du dernier jour entré. (ex : le
29/07 on voit la moyenne du 01/07 au 28/07 ).
Le pb. sera peut-être que pour le mois suivant , la moyenne reparte bien
au

1 du nouveau mois.

Mais là aussi, le plus simple mais le moins élégant serait à chaque
changement de mois , d'entrer une nouvelle formule manuellement avec une
nouvelle plage de la colonne "B".

Si tu pouvais donner une suite...

Si j'ose me permettre , les polars coréens, c'est comme le bon
ou

le mauvais vin ? on peut en abuser ou pas??? ;-)



bonsoir Le Steph ,

je n'avais pas pensé à incrémenter les dates sur plrs. mois...

pour la moyenne , je peux faire comme plus haut.


à+ , cordialement

j-claude









Avatar
ru-th
re-

version corrigée pour tes moyennes mensuelles
fait à la va-vite, avec un chouia de mauvais foi ;-))

Private Sub Worksheet_Calculate()
On Error Resume Next
With Sheets("feuil2")
If [c1] <> valeur Then
ligne = .[a65536].End(xlUp).Row + 1
If Month(Now) <> Month(.Range("a" & ligne - 1)) Then
repa = Month(Int(Sheets("feuil2").Range("a" & ligne - 1)))
'debut ligne
.Range("c" & ligne - 1) = Evaluate("sumproduct((month(feuil2!A1:a65000)=" &
repa & " )*(feuil2!b1:b65000))/sumproduct((month(feuil2!A1:a65000)=" & repa
& ")*1)")
'fin ligne
End If
If Int(Now) = Int([max(feuil2!a:a)]) Then ligne = ligne - 1
End If
.Range("a" & ligne) = Now
.Range("b" & ligne) = [c1]
valeur = [c1]
End With
End Sub

Quant au polar, c'est comme le vin, qu'on aime, on use et abuse, et puis du
coréens on passe facilement au japonais (un peu plus âpre), ou au
hongkongais (plus fruité)
--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"j-claude" a écrit dans le message de
news:41068b92$0$31399$

bonsoir,
Thierry c'est bon maintenant pour la valeur de la dernière cellule du
jour.
pour la moyenne , j'ai ave(c) rage essayé de l'intégrer dans la macro
mais j'ai finalement choisi d'aller au plus simple :
entrer dans une cellule quelconque :
=moyenne(B1:B31),
ce qu'il aurait fallu , c'est intégrer l'instruction dans la macro de
façon

que le résultat apparaisse sous la ligne du dernier jour entré. (ex : le
29/07 on voit la moyenne du 01/07 au 28/07 ).
Le pb. sera peut-être que pour le mois suivant , la moyenne reparte bien
au

1 du nouveau mois.

Mais là aussi, le plus simple mais le moins élégant serait à chaque
changement de mois , d'entrer une nouvelle formule manuellement avec une
nouvelle plage de la colonne "B".

Si tu pouvais donner une suite...

Si j'ose me permettre , les polars coréens, c'est comme le bon
ou

le mauvais vin ? on peut en abuser ou pas??? ;-)



bonsoir Le Steph ,

je n'avais pas pensé à incrémenter les dates sur plrs. mois...

pour la moyenne , je peux faire comme plus haut.


à+ , cordialement

j-claude









Avatar
AV
.............= Evaluate("sumproduct


Tiens donc !
Et qui plus est avec une pincée d'Evaluate !
C'est pas parceque tu caches "ça" sous une "soutane anglaise" qu'on a pas repéré
!

AV

Avatar
isabelle
:-)))c'est comme ca que dit, Thierry ?
la main pris dans le sac ;-)
isabelle


.............= Evaluate("sumproduct


Tiens donc !
Et qui plus est avec une pincée d'Evaluate !
C'est pas parceque tu caches "ça" sous une "soutane anglaise" qu'on a pas repéré
!

AV



Avatar
j-claude
bonsoir Thierry , Le Steph et les autres...

moi , dans mon sac, je sens de plus en plus de noeuds , je préfèrerais y
trouver du vin (mais j'entends déjà les quolibets)...

pour ta macro , tu n'as pas oeuvré en vain car on frise la réussite!

quand je change de mois, j'ai bien la moyenne des jours du mois
précédent dans "C".Ce qui est très bien.

juste une petite modif. allant dans le sens de ma première
question qii était

......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.
..................

en effet il faut que je respecte une valeur moyenne d'encaisse et donc
que chaque jour du mois , je sache où j'en suis...

ex . le 092/0704 il me faut la moyenne des 8 premiers jours de juillet
(affichée en"C")
le 28 /07/04 il me faut la moyenne des 27 jours
précédents...etc...


avec ta macro il faut que j'attende le premier jour du mois suivant
pour avoir le résultat de la moyenne du mois d'avant (trop tard pour
rectifier le tir si je dépasse trop).

si ça devient trop escagassant, laisse , ça ne fait rien , je ferai
comme dit plus haut: j'entre chaque mois une nouvelle formule avec la plage
de cellules du mois en cours de la colonne "B".

Le top serait la macro,

merci d'essayer encore...

à +
cordialement
j-cl.









"isabelle" a écrit dans le message news:

:-)))c'est comme ca que dit, Thierry ?
la main pris dans le sac ;-)
isabelle


.............= Evaluate("sumproduct


Tiens donc !
Et qui plus est avec une pincée d'Evaluate !
C'est pas parceque tu caches "ça" sous une "soutane anglaise" qu'on a
pas repéré


!

AV





1 2 3 4 5