Message d'erreur dans une cellule via macro

Bonjour,

A-t-il moyen d’afficher automatiquement dans une cellule (par exemple B2) un message d’erreur (appeler via une macro “messageErreur”) si la valeur d’une autre cellule (par exemple A1) est erronée ?

J’aimerai passer par une macro car j’essaye de mettre la liste de tous les messages d’erreur dans une macro dans la prévision où ceux-ci devraient être traduits.

Sub MessageErreurModule 


If (IM=1) then
msgbox ("xxxxxxxx")

ElseIf (IM=2) then
msgbox ("xxxxxxxxx")

ElseIf (IM=3) Then
	msgbox ("xxxxxxxx")
	
ElseIf (IM=4) then	
msgbox ("xxxxxxxxxxxx")
endif


End Sub

Appeler via la formule (mis dans la cellule B2)

if (a1>1 then ok; (IM=1;appeler macro MessageErreurModule()) )

Merci

D’après les différentes réponses reçues, j’ai fait un mélange de celles-ci pour obtenir ceci:

Solution trouvée : Essai message d’erreur.ods

Merci

@micmor le seul mélange que je vois c’est sur la personne ayant trouvé cette solution qui ne se différencie en rien de ce que je t’ai proposé

OUi, tout à fait, milles excuses, j’ai complètement mélangé les fichiers … Donc rendons à César ce qui appartient à César, merci pour ton aide pour cette solution.

J’avais plusieurs questions en même temps, et il vrai je me suis complètement planté ici.

Et j’espère que je t’ai bien envoyé un +1 pour te remercier ?

Bonjour

La section macro du wiki regroupe bon nombre des ressources disponibles où trouver ce type de réponses.

AJOUT

Tout d’abord un conseil d’utilisation de cet espace : n’utiliser la fonction Répondre que pour ajouter effectivement une réponse, même à sa propre question. En effet cela donne l’impression que la question a reçu une réponse et si l’on n’est pas curieux on risque de ne pas rouvrir la question. Tu peux soit modifier ta question (via Éditer en dessous de ta question comme je le fais moi-même) soit apporter un commentaire.

Pour revenir à la question je te déconseille l’utilisation d’une macro quand ce n’est pas absolument nécessaire.

  • Tu ne peux être certain que l’utilisateur de ton classeur activera la macro, rendant ton classeur inutilisable.
  • De plus cela rend le classeur plus difficile à maintenir.
  • Enfin, ce que tu cherches peut être réalisé sans macro.

Dans l’exemple joint choisir la langue en A1 (EN ou FR). La cellule “testée” est C12. Si la valeur saisie est > 1, ok s’affiche, sinon un message “localisé” s’affiche. En l’occurrence on souhaite afficher le texte correspondant au code “2”.

Pour simplifier la lecture et donc la compréhension de la formule, j’ai défini des noms sur les plages de cellules.

Le principe est le suivant :

  1. Choisir une langue provoque le calcul de sa “position” dans la plage des codes langue (affichée en D1)
  2. Pour afficher le texte du code erreur “2”, on recherche la position de cette valeur dans la plages des codes erreur
  3. La fonction INDEX permet de rechercher le texte associé dans la “bonne” colonne (calculée au point 1)

Localiser.ods

Cordialement

ok merci pour ta solution, je regarde à cela dès que possible et je reviendrai ici pour poster mon retour.
Merci

C’est vrai que j’ai copié mon code avec la solution actuelle via msgbox (qui fonctionne)

Mais comment remplacer l’affichage de la la fenêtre par une mention dans une cellule ?

sub MessageErreurModule 
    
    
    If (IM=1) then
   message = ("xxxxxxxx")
    
    ElseIf (IM=2) then
message =  ("xxxxxxxxx")
    
    ElseIf (IM=3) Then
        message = ("xxxxxxxx")
    
    ElseIf (IM=4) then  
    message = ("xxxxxxxxxxxx")
    endif
    
    
    End Sub