Ecrire un message dans une case lors de sa saisie

Bonjour,

Voilà l'ennoncé de la question que je n'arrive pas :

Colonne I :si l’élève a payé, le commentaire « OK ! » apparaît dans la cellule de la colonne I. Sinon, la cellule reste

vide. (FORMULE =SI)

En gros une cellule est vide, je veux que lorsque je saisie "2" dans cette case vide, le 2 soit remplacé par "OK !"

Que le message s'écrivent dans une autre case je comprend comment faire, mais directement dans la case de la valeur je ne vois pas... J'ai esseyé des choses mais cela me parle de "reference circulaire"...

Merci d'avance de vos reponses.

Bonjour,

dans une cellule, tu as soit une formule qui te donne un résultat, soit une valeur que tu introduis manuellement, tu ne peux pas avoir les 2, car dès lors que tu introduis une valeur tu écrases ta formule et réciproquement.

Pour obtenir le résultat que tu souhaites, il faut passer par VBA

Bonjour,

Merci de la réponse

C'est ce qu'il me semblé ce que vous avez dit.. Mais.du coup c'est quoi VBA?

Merci bonne journée

Bonjour Nicolas, h2so4,

VBA = Visual Basic for Application

c'est le langage de programmation des applications Office (Excel, Word...).

dhany

Merci

Mais du coup c'est possible de faire ce que mon ennoncé me demande ou impossible ?

si, c'est possible ; attends un peu : je vais te préparer ça.

dhany

Super merci beaucoup j'attends ça!

voici le fichier :

21exo-nicolas11.xlsm (13.62 Ko)

j'ai choisi par exemple la cellule B3 (celle avec contour et couleur jaune clair)

sélectionne-là, puis saisis le nombre 2 ➯ remplacé par texte "OK !"

dhany

clique sur le lien vert du post précédent pour télécharger le fichier ; essaye la manipulation que je t'ai indiquée.

fais Alt F11 pour voir le code VBA ; mais c'est une programmation spéciale car le code VBA est une sub événementielle placée dans un module de feuille ; quand on débute en programmation VBA, on ne commence pas par ça : on commence par un code VBA non événementiel placé dans un module classique nommé Module1.

fais Alt F11 pour revenir sur Excel (quand tu auras terminé d'admirer mon beau code VBA).


pour apprendre le VBA, tu peux commencer par là :

cours vba xlp

dhany

Merci beaucoup ca fonctionne ! Mais cest vraiment unnteuc compliqué! Je pense qu'il doit y avoir une erreur dans mon ennoncé cela me parrait trop complexe!

Je vais me.renseigner.

En tout cas merci beaucoup et bonne journee

merci pour ton retour !

mais tu verras qu'on t'répondra qu'c'est normal qu'c'est compliqué, car c'est un remplacement « à la volée » dans la même cellule ; y'a pas moyen d'faire autrement ! et c'est impossible de faire ça par une formule !

bonne continuation !

dhany

Bonjour Nicolas,

pour info, si ta demande avait été : je saisis 2 en A3 et je veux avoir "OK !" en B3

là, une simple formule en B3 aurait suffit : =SI(A3=2;"OK !";"")

le code VBA aurait été vraiment très simple :

Sub Essai()
  [B3] = IIf([A3] = 2, "OK !", "") 'si A3 = 2, B3 = "OK !" sinon B3 = ""
End Sub

mais il faudrait lancer manuellement la macro : Alt F8 pour afficher la liste des macros ; sélection de la macro (s'il y a au moins une autre macro) ; clic sur bouton « Exécuter » ... OU mise en place et utilisation d'un raccourci clavier ; Ctrl e par exemple.

pour une exécution « à la volée », sans devoir lancer la macro, le code VBA serait :

Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
    If .CountLarge > 1 Then Exit Sub 'on sort si la sélection comporte plus d'un élément
    If .Address <> "$A$3" Then Exit Sub 'on sort si la cellule active n'est pas A3
    [B3] = IIf([A3] = 2, "OK !", "") 'si A3 = 2, B3 = "OK !" sinon B3 = ""
  End With
End Sub

c'est donc un peu moins « compliqué » que précédemment, car vu qu'il n'y a pas de modification de la cellule active, il n'est pas nécessaire de désactiver les événements avant modif, puis de les réactiver après (c'était fait via .EnableEvents).

j'ai mis plusieurs infos dans le fichier !

dhany

Bonjour Nicolas,

si tu reviens sur ton sujet, merci d'essayer le fichier de mon post précédent, et de me donner ton avis.


si ton sujet est résolu, merci de cliquer sur à droite de (coin haut droit du post)

ça permet aussi de clôturer le fil de la discussion (toi seul peut le faire, car c'est toi qui a créé ce sujet).

dhany

Rechercher des sujets similaires à "ecrire message case lors saisie"