Afficher messages dans des cellues selon d'autres cellules

Bonjour la communauté,

J'ai dans ce fichier (

), un ensemble de combinaisons. Je souhaiterais pouvoir afficher un message dans chaque cellule correspondant à une combinaison.

La "Sheet1" représente le résultat que je cherche à obtenir. J'ai commencé à créer mon code, mais je suis bloque lors de la génération de mon code car Excel me renvoie une erreur et je n'arrive pas à la déterminer.

Si quelqu'un parmi vous comprend mon problème, serait il possible de me donner un coup de pouce ?

Merci beaucoup par avance.

Cdt,

Abakisi

Bonjour,

Essaye le code suivant :

Sub comments()
    With Sheets("Sheet1")
        For i = 5 To 29 'plage à adapter
            Select Case .Cells(i, "B")
                Case "0"
                    Select Case .Cells(i, "C")
                        Case " -", ":", "empty": .Cells(i, "E") = "Your total should be '0'"
                    End Select
                Case " -"
                    Select Case .Cells(i, "C")
                        Case "0", ":", "empty": .Cells(i, "E") = "Your total should be not applicable ('-')"
                    End Select
                Case ":"
                    Select Case .Cells(i, "C")
                        Case "0", " -", "empty": .Cells(i, "E") = "Your total should be not applicable (':')"
                    End Select
                Case "empty"
                    Select Case .Cells(i, "C")
                        Case "0", " -", ":": .Cells(i, "E") = "Your total should be empty"
                    End Select
                Case "number"
                    Select Case .Cells(i, "C")
                        Case "0": .Cells(i, "E") = "Your total should not be 0, because the calculated total is > 0!"
                        Case " -": .Cells(i, "E") = "Your total cannot be not applicable ('-'), because the calculated total is > 0!"
                        Case ":": .Cells(i, "E") = "Your total cannot be not available (':'), because the calculated total is > 0!"
                        Case "empty": .Cells(i, "E") = "Your total cannot be empty, because the calculated total is > 0!"
                    End Select
            End Select
        Next i
    End With
End Sub

Bonjour Raja,

Merci pour ton aide.

J'ai oublié de préciser que pour chaque cellule lorsque l'on change la valeur, le messages doit changer aussi.

J'ai essayé d'écrire ce code mais que je n'arrive pas à faire exécuter .

le voici:

    Sub comments()
        With Sheets("Sheet2")
    .Range("E5").Formula = "=IF(AND(ISNUMBER(B5),ISNUMBER(C5)), IF(B5<C5-$B$1,""Calculation Under Reported total"", IF(B5>C5+$B$1,""Calculation above Reported total"",""OK"")), ""Your Total should be '0'"", ""Your total should be not applicable ('-')"")"

    While .Range("E5").FormatConditions.Count > 0
      .Range("C5").FormatConditions.Delete
    Wend

    '.Range("E5").FormatConditions.Add Type:=xlExpression, Formula1:="=OR(NOT(AND(ISNUMBER(B5); ISNUMBER(C5))); B5<C5-$B$1; B5>C5+$B$1)"
    '.Range("E5").FormatConditions(1).Font.ColorIndex = 10
    '.Range("E5").FormatConditions(1).Font.Bold = True

    .Range("E5").Copy
    .Paste .Range("E5:E29")

    Application.CutCopyMode = False

  End With
    End Sub

Re,

Met les codes suivants dans le module de la feuille "Sheet1" :

Sub commentaire()
    With Sheets("Sheet1")
        Range("E5:E29").ClearContents
        For i = 5 To 29 'plage à adapter
           Select Case .Cells(i, "B")
                Case "0"
                    Select Case .Cells(i, "C")
                        Case " -", ":", "empty": .Cells(i, "E") = "Your total should be '0'"
                    End Select
                Case " -"
                    Select Case .Cells(i, "C")
                        Case "0", ":", "empty": .Cells(i, "E") = "Your total should be not applicable ('-')"
                    End Select
                Case ":"
                    Select Case .Cells(i, "C")
                        Case "0", " -", "empty": .Cells(i, "E") = "Your total should be not applicable (':')"
                    End Select
                Case "empty"
                    Select Case .Cells(i, "C")
                        Case "0", " -", ":": .Cells(i, "E") = "Your total should be empty"
                    End Select
                Case "number"
                    Select Case .Cells(i, "C")
                        Case "0": .Cells(i, "E") = "Your total should not be 0, because the calculated total is > 0!"
                        Case " -": .Cells(i, "E") = "Your total cannot be not applicable ('-'), because the calculated total is > 0!"
                        Case ":": .Cells(i, "E") = "Your total cannot be not available (':'), because the calculated total is > 0!"
                        Case "empty": .Cells(i, "E") = "Your total cannot be empty, because the calculated total is > 0!"
                    End Select
            End Select
        Next i
    End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("B5:C29"), Target) Is Nothing Then
       Call commentaire
    End If
End Sub

Re,

Les messages sont bien générés mais ils restent figés quand je change la combinaison.

Je partais dans l'idée d'écrire quelque chose comme "SI ma cellule a une valeur correspondante a 0 ou empty ALORS affiche le message correspondant à la combinaison de cette valeur"

Dans mon code précédent c'est ce que j'ai essayé d'écrire mais excel me renvoie une erreur que je n'arrive pas à identifier.

Merci encore de ton aide.

Cdt,

Abakisi

Re,

Tu fais un changement en quel onglet et en quelle cellule ? Il faudra peut être adapté mon code à ton besoin. Mon code ne fonction que si la modification est faite dans 1er onglet et dans la plage B5:C29 selon le classeur joint.

Le code je l'insert dans le module de mon classeur en modifiant le nom de la feuille, à la place de laisser ("Sheet1") je mets ("Sheet2").

Puis j'effectue mes changement en Sheet2, en cellule (B5:C29). Et les messages en cellule E5:E29 restent figés.

Re,

Regarde dans le fichier ci-joint. Tu trouveras pourquoi le tien ne marche pas.

Merci Raja,

Je viens effectivement de tester ton fichier et cela fonctionne parfaitement bien.

Mais par contre je n'ai toujours pas compris pourquoi le mien ne fonctionne pas pourtant tout semble identique.

Un petit supplément, si on devrait y mettre de la couleur par exemple afficher les messages en rouge.

Cdt,

Abakisi

Bonjour le forum,

Je remets d'actualité ce topics, car je n’arrive pas à faire fonctionner correctement la tâche que doit réaliser ma macro.

Je souhaiterais que les 4 dernières ligne puis afficher les messages tel que sont encoder dans la macro.

Voici le document joint.

Cordialement;

Abakisi

Rechercher des sujets similaires à "afficher messages cellues"