XL 2010 Macro pour grerer les mentions en fonction des notes obtenues

ATHE RIOVELI

XLDnaute Occasionnel
BONJOUR, le forum.
Dans la cellule H18 de ma feuille, voici la formule:
H18=SIERREUR(SI([@Colonne7]="";"";SI([@Colonne7]="NC";"";SI([@Colonne7]<5;"Très faible";SI([@Colonne7]<8;" Faible";SI([@Colonne7]<10;"Insuffisant";SI([@Colonne7]<12;"Passable";SI([@Colonne7]<14;"Assez-bien";SI([@Colonne7]<16;"Bien";SI([@Colonne7]<18;"Très bien";"Excellent")))))))));"")

Je souhaite une macro qui gère ces appreciations en H18, H19, H20, H.....,
Au fait la feuille se déplie à chaque fois qu'on insère un nom.
 

Pièces jointes

  • Classement par ordre de mérite(2).xlsm
    34.2 KB · Affichages: 39

JHA

XLDnaute Barbatruc
Re : Macro pour grerer les mentions en fonction des notes obtenues

Bonjour à tous,

Pas de macro mais 2 formules pour gérer les appréciations.

JHA
 

Pièces jointes

  • Classement par ordre de mérite(2).xlsm
    34.6 KB · Affichages: 44

ATHE RIOVELI

XLDnaute Occasionnel
Re : Macro pour grerer les mentions en fonction des notes obtenues

MERCI JHA,
Ce n'est pas ce que je souhaite.
parce que dès qu'on pose sélectionne une cellule dans mention, tu vois la formule apparaît, alors je me dis qu'avec une macro,
elle ne sera pas visible.
As tu idée à cela?
Encore une fois MERCI
A+
 

JHA

XLDnaute Barbatruc
Re : Macro pour grerer les mentions en fonction des notes obtenues

Bonjour à tous,

Tu as dans excel la possibilité de masquer les formules, voir fichier joint.
Comme il faut protéger la feuille, il te faut compléter les codes VBA en place.


JHA
 

Pièces jointes

  • Classement par ordre de mérite(2bis).xlsm
    35.6 KB · Affichages: 31

ATHE RIOVELI

XLDnaute Occasionnel
Re : Macro pour grerer les mentions en fonction des notes obtenues

BONJOUR JAH,
Je crois qu'on ne se comprend pas.
regarde un peut le premier fichier de mon post.
Saisi un nom puis tape sur la touche ENTRER.
tu veras que la ligne de moyenne se décale pour aller vers le bas.
Mais avec ce que tu donne, c'est vrai la formule est cachée, c'est bien ce que je voulais là bravo à toi.
Mais dès que je tape un nouveau nom pour mette sa note, la ligne de MOYENNE ne se décale plus vers le bas.
C'est justement ce que je veux tu essais maintenant de voir.
MERCI A+
 

ATHE RIOVELI

XLDnaute Occasionnel
Re : Macro pour grerer les mentions en fonction des notes obtenues

S'il te plait vois ce code (comment l'adapter au classeur?):

'La Note se trouve dans la cellule "A1", la mention
est à mettre dans la cellule "B1"
'Pour trouver la valeur de la mention, on pourrait
écrire :
Dim Note As Integer
Dim Mention As String
Note = Range("A1")
If Note = 0 Then Mention = "Nul"
If Note >= 1 And Note <6 Then Mention = "Moyen"
If Note >= 6 And Note <11 Then Mention = "Passable"
If Note >= 11 And Note <16 Then Mention = "Bien"
If Note >= 16 And Note <20 Then Mention = "Très
Bien"
If Note = 20 Then Mention = "Excellent"
Range("B1") = Mention
 

job75

XLDnaute Barbatruc
Re : Macro pour grerer les mentions en fonction des notes obtenues

Bonjour ATHE RIOVELI, JHA,

Je ne vois pas pourquoi vous voulez supprimer les formules des mentions en colonne H puisque la macro Worksheet_Change évite qu'on supprime les formules.

Et la formule n'est pas bien difficile à modifier (sur toute la colonne H du tableau).

On peut bien sûr ne pas l'afficher en l'utilisant comme ceci dans le code :

Code:
'---mentions---
If Not Intersect(Target, br.Columns(7).Resize(, 2)) Is Nothing Then
  br.Columns(8) = "=IFERROR(IF([@Colonne7]="""","""",IF([@Colonne7]=""NC"","""",IF([@Colonne7]<5,""Très faible"",IF([@Colonne7]<8,""Faible"",IF([@Colonne7]<10,""Insuffisant"",IF([@Colonne7]<12,""Passable"",IF([@Colonne7]<14,""Assez-bien"",IF([@Colonne7]<16,""Bien"",IF([@Colonne7]<18,""Très bien"",""Excellent""))))))))),"""")"
  br.Columns(8) = br.Columns(8).Value
End If
Il suffit de savoir qu'il faut doubler les guillemets et remplacer les points-virgules par des virgules.

Fichier (3)..

A+
 

Pièces jointes

  • Classement par ordre de mérite(3).xlsm
    34.9 KB · Affichages: 32

job75

XLDnaute Barbatruc
Re : Macro pour grerer les mentions en fonction des notes obtenues

Re,

Fichier (4) avec la même méthode pour les 3 colonnes A D H :

Code:
'---RANG---
If Not Intersect(Target, Union(br.Columns(1), br.Columns(7))) Is Nothing Then
  br.Columns(1) = "=IFERROR(RANK([@Colonne7],[Colonne7]),"""")"
  br.Columns(1) = br.Columns(1).Value
End If
'---NOM&PRENOMS (pour les doublons)---
If Not Intersect(Target, br.Columns(2).Resize(, 3)) Is Nothing Then
  br.Columns(4) = "=[@Colonne2]&"" ""&[@Colonne3]"
  br.Columns(4) = br.Columns(4).Value
End If
'---MENTION---
If Not Intersect(Target, br.Columns(7).Resize(, 2)) Is Nothing Then
  br.Columns(8) = "=IF(ISNUMBER([@Colonne7]),IF([@Colonne7]<5,""Très faible"",IF([@Colonne7]<8,""Faible"",IF([@Colonne7]<10,""Insuffisant"",IF([@Colonne7]<12,""Passable"",IF([@Colonne7]<14,""Assez-bien"",IF([@Colonne7]<16,""Bien"",IF([@Colonne7]<18,""Très bien"",""Excellent""))))))),"""")"
  br.Columns(8) = br.Columns(8).Value
End If
Edit : j'ai simplifié la formule pour la colonne H.

En plus elle fonctionnera sur Excel 2003 et versions antérieures (8 niveaux d'imbrication, 1er SI inclus).

Bonne nuit.
 

Pièces jointes

  • Classement par ordre de mérite(4).xlsm
    35.1 KB · Affichages: 34
Dernière édition:

job75

XLDnaute Barbatruc
Re : Macro pour grerer les mentions en fonction des notes obtenues

Bonjour ATHE RIOVELI, le forum,

Fichier (5) avec la même chose pour la MOYENNE :

Code:
'---
  With [MOYENNE].Cells(6)
    If Not Intersect(Target, Union(br.Columns(7), .Cells)) Is Nothing Then
      .Formula = "=IFERROR(AVERAGE(" & ListObjects(1).Name & "[Colonne7]),"""")"
      .Value = .Value
    End If
  End With
Bonne journée.
 

Pièces jointes

  • Classement par ordre de mérite(5).xlsm
    34.2 KB · Affichages: 47

job75

XLDnaute Barbatruc
Re : Macro pour grerer les mentions en fonction des notes obtenues

Re,

Pour les mentions on peut utiliser un tableau nommé Mention en 2ème feuille.

Cela simplifie nettement la formule :

Code:
'---MENTION---
If Not Intersect(Target, br.Columns(7).Resize(, 2)) Is Nothing Then
  br.Columns(8) = "=IF(ISNUMBER([@Colonne7]),VLOOKUP([@Colonne7],Mention,2),"""")"
  br.Columns(8) = br.Columns(8).Value
End If
Fichier (6).

A+
 

Pièces jointes

  • Classement par ordre de mérite(6).xlsm
    35.8 KB · Affichages: 36

ATHE RIOVELI

XLDnaute Occasionnel
Re : Macro pour grerer les mentions en fonction des notes obtenues

BONSOIR JOB75,
Je n'ai pas encore regardé les formules mais je suis très heureux tu fait que vous répondiez à mon message.
Ces macros, c'est grâce à vous,
Ces fichiers, c'est aussi grâce à vous.
S'il vous plait j'ai grand besoin de votre aide en ce moment. Aidez moi à avancer encore dans ces fichiers.
Je vous ferez parvenir le fichier gest-note. pour qu'on ajoute encore des macros.
Dans l'attente d'une suite favorable à mes demande, je vous souhaite de passer de très bon moment.
MERCI A+
 

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg