Comment convertir une note dans une feuille en fonction d'un barême dans une autre

  • Initiateur de la discussion Initiateur de la discussion phmad
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

phmad

Guest
Coucou, me revoilou avec mon sacré questionnaire, qui fonctionne, rassurez-vous (je dis surtout cela à Nolich et Fo rum).

Pourriez-vous m'aider à écrire la fonction me permettant de convertir des notes "brutes" à certaines échelles (feuille des notes brutes), en notes "standard" obtenues en fonction d'un barême différent pour chaque échelle (feuille "échelle de conversion").

Ci-joint quelques exemples. Une fois que je saurais comment faire pour une ou deux échelles, je pourrai me débrouiller. Merci.
 

Pièces jointes

Re : Comment convertir une note dans une feuille en fonction d'un barême dans une aut

Bonjour à tous, bonjour james007

Ci-joint, une possibilité avec RECHERCHEV.

Attention, le copier-coller ne se fait pas très bien, car le numéro relatif (12 en E8, 10 en G8, 8 en I8...) de la colonne où excel va lire la réponse ne s'adapte pas automatiquement. De même si on modifie le nombre de colonne du tableau dans la feuille échelle de conversion, il faut corriger ces derniers nombres (12, 10, 8...).

@ plus
 

Pièces jointes

Re : Comment convertir une note dans une feuille en fonction d'un barême dans une aut

Bonjour phmad, James, Cisco,

Si j'ai bien compris, une solution avec une fonction VBA.

Fichier joint.

Code:
Function NS(echel$, nb%) As Variant
Dim col As Byte, ns1$, ns2$
On Error Resume Next
col = Application.Match(echel, Rows(6), 0)
For Each cel In Range(Cells(10, col), Cells(65536, col).End(xlUp))
If InStr(cel, "et") Then
ns1 = Split(cel, " et ")(0)
ns2 = Split(cel, " et ")(1)
ElseIf InStr(cel, "à") Then
ns1 = Split(cel, " à ")(0)
ns2 = Split(cel, " à ")(1)
Else
ns1 = cel.Text
ns2 = ns1
End If
If nb >= Val(ns1) And nb <= Val(ns2) Then NS = Cells(cel.Row, 9): Exit Function
Next cel
NS = "###"
End Function

A+
 

Pièces jointes

Dernière édition:
Re : Comment convertir une note dans une feuille en fonction d'un barême dans une aut

Re,

Une simplification de la fonction :

Code:
Function NS(echel$, nb%) As Variant
Dim col As Byte, ns1$, ns2$, txt$
On Error Resume Next
col = Application.Match(echel, Rows(6), 0)
For Each cel In Range(Cells(10, col), Cells(65536, col).End(xlUp))
If IsNumeric(cel) Then
ns1 = cel.Text
ns2 = ns1
Else
txt = Replace(Replace(cel, "et ", ""), "à ", "")
ns1 = Split(txt, " ")(0)
ns2 = Split(txt, " ")(1)
End If
If nb >= Val(ns1) And nb <= Val(ns2) Then NS = Cells(cel.Row, 9): Exit Function
Next cel
NS = "###"
End Function

A+
 

Pièces jointes

Re : Comment convertir une note dans une feuille en fonction d'un barême dans une aut

Re,

Bon, autant pour moi, j'avais oublié que la fonction doit surtout servir dans la 1ère feuille. Il faut donc faire référence à la feuille Echelle de conversion.

J'ai aussi déclaré le 2ème argument As Single, au cas où...

Edit : Enfin la dernière colonne du tableau de conversion est déterminée par la variable colmax.

Code:
Function NS(echel$, nb As Single) As Variant
Dim col As Byte, colmax As Byte, ns1$, ns2$, txt$
On Error Resume Next
With Sheets("Echelle de conversion")
col = Application.Match(echel, .Rows(6), 0)
colmax = .Cells(10, 256).End(xlToLeft).Column
For Each cel In .Range(.Cells(10, col), .Cells(65536, col).End(xlUp))
If IsNumeric(cel) Then
ns1 = cel.Text
ns2 = ns1
Else
txt = Replace(Replace(cel, "et ", ""), "à ", "")
ns1 = Split(txt, " ")(0)
ns2 = Split(txt, " ")(1)
End If
If nb >= Val(ns1) And nb <= Val(ns2) Then NS = .Cells(cel.Row, colmax): Exit Function
Next cel
End With
NS = "###"
End Function

A+
 

Pièces jointes

Dernière édition:
Re : Comment convertir une note dans une feuille en fonction d'un barême dans une aut

Vous êtes vraiment géniaux ! Et moi qui m'imaginais que cela puisse être simple ?

Je vais dès que possible trouver le temps pour compléter mes tableaux et voir ce que cela donne.

Pour rajouter d'autres échelles, quelle méthode je dois utiliser ? Le copier coller, la référence à une cellule ?

Merci à tous et à très bientôt. Philippe.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

N
Réponses
21
Affichages
4 K
news8319
N
P
Réponses
44
Affichages
9 K
phmad
P
M
Réponses
3
Affichages
4 K
Martin14
M
S
Réponses
0
Affichages
1 K
Steph débute
S
Retour