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 SubBonjour 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 SubRe,
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 SubPrivate Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("B5:C29"), Target) Is Nothing Then
Call commentaire
End If
End SubRe,
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