OVH Cloud OVH Cloud

Repérer la meilleur moyenne

30 réponses
Avatar
Guy72
Bonjour,
En A1 la distance.
En colonne B la date.
En colonne C le temps.
En colonne D la moyenne.
Je souhaiterais avoir en motif jaune la cellule ou il y a la meilleure
moyenne.
Un petit + (si possible) faire clignoter la cellule concernée.
Merci de votre aide.
--
Cordialement
Guy

10 réponses

1 2 3
Avatar
francois.forcet
Rebonjours à toi

Le déclenchement de la macro "Auto_Open" qui analyse l'ensemble des
moyennes colonne D pour colorer la meilleure se fait soit à
l'ouverture de ce document grâce à son appellation soit par
l'évennement de modification de la valeur d'une cellule de la feuille
décrite dans le code du VBA de cette feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
Run ("Auto_Open")
End If
End Sub


Private Sub Worksheet_Change décrit l'évennement qui est le changement
d'une valeur d'une cellule
If Target.Column = 3 Then est la condition qui entraine la suite des
intructions ici la cellule concernée doit être en colonne 3 soit
colonne C
Run ("Auto_Open") est l'instruction appliquée si la condition est
requise

On peux étendre les colonnes répondant à la condition ainsi :

If Target.Column > 3 étend à toutes les colonne aprés la 3°
If Target.Column < 3 étend à toutes les colonne avant la 3°

Etc....

On peut étendre à toute la feuille en supprimant la condition ainsi :

Private Sub Worksheet_Change(ByVal Target As Range)
Run ("Auto_Open")
End Sub

Inconvénient toutes modifications sur n'importe quelle cellule
déclenchera la macro "Auto_Open"

A toi de voir ce que tu souhaites

Toujours est il que quelque soit l'option retenu seule la colonne D
sera traité par la macro "Auto_Open"

Espérant avoir répondu à tes interrogations

Dis moi !!!!
Avatar
francois.forcet
Rebonjours à toi

Pour des concurrents supplémentaires que j'ai mis de H à K et de M à P
je te propose de modifier le VBA de la feuille ainsi :

Private Sub Worksheet_Change(ByVal Target As Range)
Colonne = "-3-9-14-"
If Colonne Like "*-" & Target.Column & "-*" Then
Target.Activate
Run ("Auto_Open")
End If
End Sub

le numéro des colonnes sont à identifier sur cette ligne :

Colonne = "-3-9-14-"

bien mettre les "-" en début et en fin

Et pour la macro Auto_Open je te propose ce code :

Range("A3").Activate
Do While ActiveCell.Column < Range("IV3").End(xlToLeft).Offset(0,
1).Column
If ActiveCell.Offset(-1, 0) = "Moyenne" Then
ActiveCell.EntireColumn.Interior.ColorIndex = xlNone
Moyenne = ActiveCell.Offset(1, 0).Address
For Each c In Worksheets("Petite boucle").Range(ActiveCell.Address,
Range(Cells(65535, ActiveCell.Column).Address).End(xlUp))
If c > Range(Moyenne) Then
Moyenne = c.Address
End If
Next
For Each d In Worksheets("Petite boucle").Range(ActiveCell.Address,
Range(Cells(65535, ActiveCell.Column).Address).End(xlUp))
If d = Range(Moyenne) Then
d.Interior.ColorIndex = 6
End If
Next
End If
ActiveCell.Offset(0, 1).Activate
Loop
Range("A1").Activate

Je sais que certains vont être choqués car j'utilise 3 boucles mais
le résultat est là

J'ai rajouté effectivement comme Modest l'a judicieusement dit et je
l'en remercie le cas où il y a égalité
Sur ce lien ton classeur modifié ainsi :

http://www.cijoint.fr/cjlink.php?file=cj200805/cijwmUzFKs.xls.

Donnes moi ton avis !!!!
Avatar
Modeste
Bonsour® Guy72 avec ferveur ;o))) vous nous disiez :

Comment je fais pour un autre concurrent avec les colonnes I et H, M
et N ....etc


toujours sans macro et adaptation des formules en semi relatif
D3=SI(C3<>0;A$1/(C3*24);"")
MEFC :
=1=RANG(D3;D$3:D$100)
idem pour
2=
3=

il suffit alors de copier la plage A1:D100
puis coller respectivement en H puis M
effacer le contenu des plages
H3:J100
M3:O100

;o)))
http://cjoint.com/?fCncfxJqHm

Nb :
trés mauvaise habitude de fusionner les cellules
préferer alignement : centrer sur plusieurs colonnes


--
@+
;o)))

Avatar
Guy72
Bonjour à tous

Oh...Oh....doucement Killy vas doucement.....comme dirais Hugues.

Je n'arrive plus à suivre.

J'avoue que de toute façon, je préfère une solution avec des formules (là je
peux suivre et modifier un peut près comme je veux), tandis qu'avec les
macros, je n'y comprends rien donc je ne gère pas dû tout.

Comme François à répondu le 1er, j'ai supposé qu'il n'y avait pas de
solution en formules.

Autre chose, je ne vois pas pourquoi dans la colonne D il y a une formule,
puisque c'est là que je saisie le temps ?
--
Cordialement
Guy
"Modeste" a écrit dans le message de news:
%
Bonsour® Guy72 avec ferveur ;o))) vous nous disiez :

Comment je fais pour un autre concurrent avec les colonnes I et H, M
et N ....etc


toujours sans macro et adaptation des formules en semi relatif
D3=SI(C3<>0;A$1/(C3*24);"")
MEFC :
=1=RANG(D3;D$3:D$100)
idem pour
2 3
il suffit alors de copier la plage A1:D100
puis coller respectivement en H puis M
effacer le contenu des plages
H3:J100
M3:O100

;o)))
http://cjoint.com/?fCncfxJqHm

Nb :
trés mauvaise habitude de fusionner les cellules
préferer alignement : centrer sur plusieurs colonnes


--
@+
;o)))

Avatar
Modeste
Bonsour® Guy72 avec ferveur ;o))) vous nous disiez :

J'avoue que de toute façon, je préfère une solution avec des formules
(là je peux suivre et modifier un peut près comme je veux), tandis
qu'avec les macros, je n'y comprends rien donc je ne gère pas dû tout.

Autre chose, je ne vois pas pourquoi dans la colonne D il y a une
formule, puisque c'est là que je saisie le temps ?


;o)))
je pense que la saisie doit s'effectuer en colonne C
la colonne D contenant la formule de calcul de la moyenne respectivement au temps en colonne C et distance en A1

les formules mise en place par moi-même en colonne C
sont entierement inutiles et servent ici (dans cet exemple) à générer des temps de façon aleatoire
permettant de verifier rapidement le fonctionnement global
;o)))

--
--
@+
;o)))

Avatar
Guy72
Ok d'accord
--
Cordialement
Guy

"Modeste" a écrit dans le message de news:
e$
Bonsour® Guy72 avec ferveur ;o))) vous nous disiez :

J'avoue que de toute façon, je préfère une solution avec des formules
(là je peux suivre et modifier un peut près comme je veux), tandis
qu'avec les macros, je n'y comprends rien donc je ne gère pas dû tout.

Autre chose, je ne vois pas pourquoi dans la colonne D il y a une
formule, puisque c'est là que je saisie le temps ?


;o)))
je pense que la saisie doit s'effectuer en colonne C
la colonne D contenant la formule de calcul de la moyenne respectivement au
temps en colonne C et distance en A1

les formules mise en place par moi-même en colonne C
sont entierement inutiles et servent ici (dans cet exemple) à générer des
temps de façon aleatoire
permettant de verifier rapidement le fonctionnement global
;o)))

--
--
@+
;o)))

Avatar
Guy72
Re
Dans la cellule E1, je souhaiterais avoir la distance parcourue au fur et à
mesure du nombre de fois la boucle effectuée.
--
Cordialement
Guy

"Modeste" a écrit dans le message de news:
%
Bonsour® Guy72 avec ferveur ;o))) vous nous disiez :

Comment je fais pour un autre concurrent avec les colonnes I et H, M
et N ....etc


toujours sans macro et adaptation des formules en semi relatif
D3=SI(C3<>0;A$1/(C3*24);"")
MEFC :
=1=RANG(D3;D$3:D$100)
idem pour
2 3
il suffit alors de copier la plage A1:D100
puis coller respectivement en H puis M
effacer le contenu des plages
H3:J100
M3:O100

;o)))
http://cjoint.com/?fCncfxJqHm

Nb :
trés mauvaise habitude de fusionner les cellules
préferer alignement : centrer sur plusieurs colonnes


--
@+
;o)))

Avatar
Modeste
Bonsour® Guy72 avec ferveur ;o))) vous nous disiez :

Dans la cellule E1, je souhaiterais avoir la distance parcourue au
fur et à mesure du nombre de fois la boucle effectuée.


en E1 = A$1*NB(D$3:Dxx)

xx représente la longueur maxi de la plage de résultats




--
--
@+
;o)))

Avatar
Guy72
Bonjour Modeste
ça me donne 0, je devrais avoir 70.5 ?
--
Cordialement
Guy

"Modeste" a écrit dans le message de news:
%
Bonsour® Guy72 avec ferveur ;o))) vous nous disiez :

Dans la cellule E1, je souhaiterais avoir la distance parcourue au
fur et à mesure du nombre de fois la boucle effectuée.


en E1 = A$1*NB(D$3:Dxx)

xx représente la longueur maxi de la plage de résultats




--
--
@+
;o)))

Avatar
Guy72
Re Modeste,
ça fonctionne, mais en remplaçant xx par un nombre quelconque.
--
Cordialement
Guy

"Modeste" a écrit dans le message de news:
%
Bonsour® Guy72 avec ferveur ;o))) vous nous disiez :

Dans la cellule E1, je souhaiterais avoir la distance parcourue au
fur et à mesure du nombre de fois la boucle effectuée.


en E1 = A$1*NB(D$3:Dxx)

xx représente la longueur maxi de la plage de résultats




--
--
@+
;o)))

1 2 3