Aide macro excel - mise en forme selon classement

T

tintmarre

Guest
Salut tout le monde,


de retour avec mon doc :(
la semaine dernière vous m'avez aidé pour appliquer une mise en forme spécifique en fonction du classement des colonnes PDM (cf mon doc)

en fait, en lisant en ligne, la 1ère PDM serait violette, la seconde bleue....

depuis j'ai voulu augmenter ce tri sur plus de colonnes mais j'ai dû oublier quelquechose !!! exemple : en effet, si vous regardez sur mon tableau en N7, normalement c'est la 1ère PDM de la ligne, la colonne J7 devrait donc indiquer "1" et ce n'est pas le cas :((( je suis vraiment nul mais je ne trouve pas l'erreur !

si l'un/une d'entre vous pouvait m'éclairer...et m'expliquer pourquoi je n'y arrive pas...ça serait cool ;)

en tout cas, merci d'avance

tintmarre alias Bebel
 

Pièces jointes

  • miseenforme.zip
    39.9 KB · Affichages: 40
  • miseenforme.zip
    39.9 KB · Affichages: 48
  • miseenforme.zip
    39.9 KB · Affichages: 47
T

tintmarre

Guest
re,


aucun problème pour la fonction MAX mais quand j'utilise
=INDEX($I$7:$I$78;EQUIV(GRANDE.VALEUR(BM$7:BM$78;1);BM$7:BM$78;0))

ça m'affiche "#NAME?"


???là je vois pas trop
en tout cas merci

Tintatatamarrrrrre (cf Celeda ! c'est tout à fait ça à l'origine ;)
 
M

Monique

Guest
Bonjour,

J'ai copié collé dans le fichier la formule que tu as mise sur le forum : c'est bon.
=INDEX($I$7:$I$78;EQUIV(GRANDE.VALEUR(BM$7:BM$78;1);BM$7:BM$78;0))
Si j'enlève le point entre "grande" et "valeur", ça dit #NOM?
Si je copie sur une feuille vierge, ça dit #NOMBRE!

Mais je crois que tu n'as pas une version française d'Excel.
Si je copie dans le fichier la formule de ton post datant du 23-02 à 16:03
=INDEX($K$7:$K$79;MATCH(LARGE(BD$7:BD$79;1);BD$7:BD$79;0))
ça dit #NOM?

Il suffit d'un signe à la place d'un autre signe, et ça ne va pas.
 
T

tintmarre

Guest
Re : Classement selon TOP 20

Salut tout le monde, de retour avec un casse-tête (enfin pour moi !)

Monique m'avait filé un coup de main pour faire le TOP20 des valeurs RTG et PDM (voir mon doc) J'ai rajouté des chiffres pour tester dans l'onglet Lundi

Vous pourrez voir dans l'onglet "classement lundi" tout ce qui est nécessaire pour faire le classement des valeurs
MAIS, j'ai découvert une erreur dans le tableau "les meilleurs horaires" BQ:BZ
En effet, ça me classe les bons horaires jusqu'à BQ13 et après ça déconne :(((
Le principe c'est que ce tableau affiche le top20 des meilleurs horaires avec à côté le programme correspondant (ça marche donc à peu près !)


autre chose : la colonne BO, onglet "classement lundi" affiche le top20 parmi toutes les colonnes A à I
En fait je cherche une formule pour avoir le même type de tableau que les"meilleurs horaires" - que ça affiche le top 20 des horaires + programme en face

enfin : je voudrais aussi pouvoir faire un TOP 20ou50 des meilleurs programmes de la semaine (j'aurai donc 7 onglets, 7 jours avec la même mise en page)


là, je suis peut être pas très clair

merci d'avance à tous ceux qui voudront bien m'épauler


biz et merci

tintmarre
 

Pièces jointes

  • Classement.zip
    48.5 KB · Affichages: 23
  • Classement.zip
    48.5 KB · Affichages: 25
  • Classement.zip
    48.5 KB · Affichages: 26
T

tintmarre

Guest
Re: Re : Classement selon TOP 20

re,


en fait la bone formule pour la colonne BO c'est :
=INDEX(lundi!$I$7:$I$78;MATCH(LARGE(BN$7:BN$78;1);BN$7:BN$78;0))
là ça marche (et oui, j'ai une version anglaise d'excel)

Monique me l'avait pourtant signifié ! (décidément je ne sais plus lire !)



Pour le reste : je n'ai pas encore trouvé
à +
 
M

Monique

Guest
Re: Re : Classement selon TOP 20

Pile, c'est ça ici aussi.

Sauf que BO est maintenant en BN et que les valeurs n'étaient pas départagées.
Les ex aequo n'avaient été départagés que par chaîne et on retrouvait des ex aequo entre les différentes chaînes.
Système un peu différent pour départager :
=MAX(BD7:BL7)*(1+(NB.SI($BD$7:$BL$78;MAX(BD7:BL7))-NB.SI(BD$6:BL6;MAX(BD7:BL7)))/1000000)

Colonnes BD:BL : ce n'était pas bon.
Les colonnes BD:BL doivent faire référence à la feuille "lundi" et non aux cellules vides de la feuille "classement"
En BD7, ça donne =lundi!M7+(NB.SI(lundi!$M$7:$M$78;lundi!M7)-NB.SI(lundi!M$6:M6;lundi!M7))/1000000
Il faut répéter le "lundi!" tout au long de la formule.

La suite au prochain numéro.
 
T

tintmarre

Guest
re re re re....


merci Monique (encore et encore comment dire...MERCI)
je fais les modifs

Note : NB.SI => COUNTIF (j'utilise mes 2 yeux pour lire maintenant :)))


Si vous avez une idée pour le TOP parmi 7 onglets ;) je suis preneur
pour le moment je fais mes modifs


à+ merci
 
T

tintmarre

Guest
coucou :)

avant d'aller me coucher j'me demandais...

en fait, pour le classement des meilleurs horaires, j'ai crée une autre colonne avec la même formule pour afficher le nom des programmes ! jusque là simple

MAIS

pour le classement parmi toutes les colonnes, TOP20, j'obtiens le top des horaires mais comment faire pour avoir les programmes ????? et le nom de la colonne ??? j'avais pas pensé à ça ! il est temps d'aller se coucher


à demain et bonne nuitée
 
M

Monique

Guest
Justement, c'est là le hic.

Sinon, le "départage" est entièrement refait, il prend en compte les valeurs de toutes les colonnes.
Il n'y a pas de doublons quand on calcule le max par horaire.
Mais c'est une formule qui dépasse 4 lignes.
Pour cette raison, tout est sur la même feuille, parce que répéter 18 fois "lundi!" dans une formule, non.

Pas trouvé de solution pour l'affichage des émissions aux meilleurs taux d'écoute, la plage de recherche est dispersée.

On peut obtenir :
La chaîne au meilleur taux à chaque quart d'heure
Les meilleurs quarts d'heure par ordre décroissant ou croissant
Le nom de l'émission la plus suivie, avec son horaire, pour chacune des chaînes, mais pas pour l'ensemble des chaînes.

Fichier trop lourd : toutes les colonnes de A à BC sont effacées, il faudra les coller à nouveau pour voir quelque chose.
 

Pièces jointes

  • Classement02.zip
    20.4 KB · Affichages: 46
T

tintmarre

Guest
Re: Re : Classement selon TOP 20

salut tout le mnde,


merci Monique !
Au fait, je sais pas si tu pensais à ça mais pour mettre à jour les bons jours au lieu de copier coller, j'utilise la fonction REPLACE et je remplace donc automatiquement plus de 700 fois par onglet Monday par ke jour en question ;)

dis moi si c'était ça !

je poursuis avec ton aide
à+
 
M

Monique

Guest
Bonjour,

C'est mieux, ça avance.
C'est un fichier plus petit, où il y a encore 9 chaînes mais seulement 6 horaires.

Pour départager les ex aequo :
formule matricielle, à valider par ctrl + maj + entrée
Elle donne à la valeur + 1/1000001 par nombre de fois où cette valeur existe
moins 1/1000001 par nombre de fois où cette valeur a déjà été prise en compte.
1ère colonne : 1/1000001
2è colonne : 1/1000002
Etc
Il semblerait qu'il n'y ait plus aucun ex aequo, avec ce système.

Affichage de l'émission :
fonction RECHERCHEV avec formule conditionnelle pour la plage de recherche.
Donc 2 formules, car il y a plus de 7 plages de recherche.

Pour faire une feuille "mardi", puis une "mercredi", on clique sur l'onglet et, en maintenant la touche ctrl enfoncée, on glisse vers la droite avec la souris.
Les plages nommées dans la 1ère feuille gardent le même nom, mais ce nom est spécifique à chaque feuille.
La fonction REPLACE, c'est comment en français ?
 

Pièces jointes

  • Classement03.zip
    12.9 KB · Affichages: 48
T

tintmarre

Guest
re,

oulalalalalala, ça me dépasse là !
je vais essayer d'adapter tout ça à mon doc, il pèse de plus en plus lourd !!!

pour la fonction replace, ctrl+F et là tu choisis ce que tu veux remplacer

encore merci

à+
 
T

tintmarre

Guest
Re de chez Re,

en fait je n'arrive pas à adapter la formule avec mes onglets

où dois-je insérer les "lundi!"

voici la formule :

=R7+(SUM((rtg_i=R7)+(rtg_a=R7)+(rtg_b=R7)+(rtg_c=R7)+(rtg_d=R7)+(rtg_e=R7)+(rtg_f=R7)+(rtg_g=R7)+(rtg_h=R7))-SUM((BA$6:BA6=R7)+(M$6:M6=R7)+(R$6:R6=R7)+(W$6:W6=R7)+(AB$6:AB6=R7)+(AG$6:AG6=R7)+(AL$6:AL6=R7)+(AQ$6:AQ6=R7)+(AV$6:AV6=R7)))/1000002

ouai je sais c pas beau à voir !

merci d'avance
 
M

Monique

Guest
Bonsoir,

Il n'y a plus besoin ni de "lundi" ni de "mardi" dans les formules.
Pour coller cette formule dans une feuille, il faut d'abord nommer les plages de cellules dans la feuille.
rtg_a est la plage qui correspond au taux RTG de la chaîne A
rtg_b est la plage qui correspond au taux RTG de la chaîne B et ainsi de suite.

Ensuite, copier et coller.
Excel prévient que la feuille où l'on colle contient déjà des cellules avec ce nom.
et demande si l'on veut garder ce nom ou bien changer.
On ne change pas, on garde.
Excel pose la question 9 fois, vu qu'il y a 9 noms de plages dans 1 seule formule.
On répond la même chose à chaque fois.
(Au bout d'un moment, on s'habitue.)

Une fois la 1ère feuille finie, on la duplique en cliquant sur l'onglet et, en gardant la touche ctrl enfoncée, on glisse l'onglet vers la droite.
Dans cette nouvelle feuille, les mêmes cellules auront les mêmes noms, mais les noms dans chaque feuille seront spécifiques à cette feuille.
Donc, pas besoin de noter "mardi" dans les formules de la 2è feuille.

Au fait, il vaut mieux créer tout de suite la feuille "dimanche", faire des sommes, des moyennes et n'importe quoi sur lundi et dimanche.
Ensuite, on pourra insérer les 5 autres feuilles entre lundi et dimanche et les formules se mettront à jour automatiquement.

Pour faire une formule qui prenne en compte totes les feuilles d'un classeur :
=MOYENNE(Lundi:Dimanche!M7)
=SOMME(Lundi:Dimanche!M7:M12)
Il faut bien sûr que "lundi" soit la 1ère feuille et "dimanche" la dernière.
Il faut aussi que toutes les feuilles aient la même structure (que M7 corresponde à la même chose dans toutes les feuilles)
D'où l'avantage de n'insérer les 5 autres feuilles que quand tout est fini.
CQFD
 

Discussions similaires

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 182
dernier inscrit
savio