• Initiateur de la discussion Initiateur de la discussion benj78
  • 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 !

B

benj78

Guest
Bonjour,

j'ai un exercice , que j'ai fais, mais j'aimerais avoir juste une petite précision

(voici lexo : Exercice 4
Plusieurs notes sont enregistrées dans la plage de cellules B1:B10. Ecrire une procédure qui calcule les notes définitives et les affecte à la plage C1:C10, selon la règle suivante :
Si note <= 7, note reste inchangée
Si 8<=note <=12, note est augmentée de 2 points
Si 13 <= note <=17, note est augmentée de 1 point
Si note >=18, note reste inchangée)

j'ai fais:
Sub note()
Dim ligne As Integer
For ligne = 1 To 10

If Cells(ligne, 2) >= 7 Then
Cells(ligne, 3) = Cells(ligne, 2)
ElseIf Cells(ligne, 2) >= 8 And Cells(ligne, 2) <= 12 Then
Cells(ligne, 3) = Cells(ligne, 2) + 2
ElseIf Cells(ligne, 2) >= 13 And Cells(ligne, 2) <= 17 Then
Cells(ligne, 3) = Cells(ligne, 2) + 1
ElseIf Cells(ligne, 2) >= 18 Then
Cells(ligne, 2) = Cells(ligne, 2)
End If
Next

End Sub



ca fonctionne, mais j'aimerais savoir quand est ce que l'on met "Cells(i,j).value.", ici j'aurai plus rajouter "value" ca ne changerait rien ?
 
Re : Programme

Bonsoir,
"value" est la propriété par défaut d'un objet Range est peut être omis, ça ne change rien dans le cas présent.
Je ne sais pas si tu as copié/collé ton code mais il me semble qu'il y a des erreurs

Sub note()
Dim ligne As Integer
For ligne = 1 To 10
If Cells(ligne, 2)<=7 Then
Cells(ligne, 3) = Cells(ligne, 2)
ElseIf Cells(ligne, 2) >= 8 And Cells(ligne, 2) <= 12 Then
Cells(ligne, 3) = Cells(ligne, 2) + 2
ElseIf Cells(ligne, 2) >= 13 And Cells(ligne, 2) <= 17 Then
Cells(ligne, 3) = Cells(ligne, 2) + 1
ElseIf Cells(ligne, 2) >= 18 Then
Cells(ligne, 3) = Cells(ligne, 2)
End If
Next
End Sub

en outre, tu peux simplifier:

Sub note()
Dim ligne As Integer
For ligne = 1 To 10
If Cells(ligne, 2) <= 7 Then
Cells(ligne, 3) = Cells(ligne, 2)
ElseIf Cells(ligne, 2) <= 12 Then
Cells(ligne, 3) = Cells(ligne, 2) + 2
ElseIf Cells(ligne, 2) <= 17 Then
Cells(ligne, 3) = Cells(ligne, 2) + 1
ElseIf Cells(ligne, 2) >= 18 Then
Cells(ligne, 3) = Cells(ligne, 2)
End If
Next
End Sub

ou bien

Sub note_2()
For ligne = 1 To 10
Select Case Cells(ligne, 2).Value
Case Is <= 7
Cells(ligne, 4) = Cells(ligne, 2)
Case Is <= 12
Cells(ligne, 4) = Cells(ligne, 2) + 2
Case Is <= 17
Cells(ligne, 4) = Cells(ligne, 2) + 1
Case Else
Cells(ligne, 4) = Cells(ligne, 2)
End Select
Next
End Sub

A+
kjin
 
- 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

Réponses
5
Affichages
914
Réponses
4
Affichages
558
Retour