Poser votre question
0

Message d'erreur dans une cellule via macro

posée 2018-12-15 08:39:08 +0200

Image Gravatar de micmor

updated 2018-12-15 08:49:19 +0200

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

éditer requalifier signaler fermer fusionner supprimer

Commentaires

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 : C:\fakepath\Essai message d'erreur.ods

Merci

Image Gravatar de micmormicmor ( 2018-12-16 18:38:28 +0200 )éditer

@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é

Image Gravatar de pierre-yves samynpierre-yves samyn ( 2018-12-17 18:06:25 +0200 )éditer

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 ?

Image Gravatar de micmormicmor ( 2018-12-17 22:09:24 +0200 )éditer

2Réponses

1

répondue 2018-12-15 08:55:37 +0200

Image Gravatar de pierre-yves samyn

updated 2018-12-15 18:52:21 +0200

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)

C:\fakepath\Localiser.ods

Cordialement

éditer signaler supprimer permalien plus

Commentaires

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

Image Gravatar de micmormicmor ( 2018-12-16 01:55:03 +0200 )éditer
0

répondue 2018-12-15 09:30:34 +0200

Image Gravatar de micmor

updated 2018-12-15 09:31:36 +0200

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
éditer signaler supprimer permalien plus
S'identifier/S'inscrire pour répondre

Outils de question

1 suiveurs

Stats

Posée: 2018-12-15 08:39:08 +0200

Consultée: 16 fois

Mise à jour: Dec 15 '18