[Débutant]Modifier une Plage de Cellule en fonction d'une autre plage

Bonjour,

Débutant dans le domaine du VBA, j'aimerais pouvoir ajouter des données dans une plage de cellule en fonction d'une Note.

Par exemple :

Voici mon code que j'utilise actuellement qui marche seulement pour une cellule D3; car quand je tape Range("D3:D25") une erreur apparait alors. Comment faire pour qu'il marche aussi pour D4,D5...D12...D25. Je sais que je pourrais utiliser une formule Si, mais j'essaie d'apprendre le VBA .

Sub CommentaireNote()

Dim Note As String, Commentaire As String

Note = Range("D3")

If Note = "S" Then

Commentaire = "Le Top du top"

ElseIf Note = "A" Then

Commentaire = "Tres bon"

ElseIf Note = "B" Then

Commentaire = "Bon"

ElseIf Note = "C" Then

Commentaire = "Moyen"

ElseIf Note = "D" Then

Commentaire = "Pas top"

ElseIf Note = "E" Then

Commentaire = "Bidon"

Else

Commentaire = ""

End If

'Afficher commentaire

Range("E3") = Commentaire

End Sub

Merci d'avance pour vos réponses

Bonjour,

En faisant de ta Sub une fonction perso :

Function CommentaireNote(Note As Range)

    Select Case Note.Value

        Case "S": CommentaireNote = "Le Top du top"
        Case "A": CommentaireNote = "Tres bon"
        Case "B": CommentaireNote = "Bon"
        Case "C": CommentaireNote = "Moyen"
        Case "D": CommentaireNote = "Pas top"
        Case "E": CommentaireNote = "Bidon"
        Case Else: CommentaireNote = ""

    End Select

End Function

Que tu utilises de cette façon en cellule E3 (ou toutes autres cellules de ton choix) :

=CommentaireNote(D3)

où ici D3 contient une lettre

Bonjour Lovelypain,

Tu dois réaliser une boucle de la ligne 3 à la ligne 25....

Donc

for i = 3 to 25
next i
Range("D3")

devient alors

Range("D"&i)

et

Range("E3")

devient alors

Range("E"&i)
Sub CommentaireNote()

Dim Note As String, Commentaire As String, i As Integer

For i = 3 To 25
    Note = Range("D" & i)
 If Note = "S" Then
    Commentaire = "Le Top du top"
 ElseIf Note = "A" Then
    Commentaire = "Tres bon"
 ElseIf Note = "B" Then
    Commentaire = "Bon"
 ElseIf Note = "C" Then
    Commentaire = "Moyen"
 ElseIf Note = "D" Then
    Commentaire = "Pas top"
 ElseIf Note = "E" Then
    Commentaire = "Bidon"
 Else
    Commentaire = ""
 End If

'Afficher commentaire
Range("E" & i) = Commentaire
Next i

End Sub

Cordialement,

Ok je vois, je comprends la logique, Merci beaucoup

Re,

(Bonjour Theze, )

@Lovelypain:

Merci pour ton retour,

Pour faire plaisir à jmd, bien que tu veuilles apprendre le vba, cela peut se faire sans, via formule....

8classeur1.xlsm (21.97 Ko)

Cordialement,

Rechercher des sujets similaires à "debutant modifier plage fonction"