Créer message d'erreur excel 2003

Résolu/Fermé
Jojoob Messages postés 4 Date d'inscription mercredi 17 novembre 2010 Statut Membre Dernière intervention 18 novembre 2010 - 17 nov. 2010 à 16:30
 Dusty - 18 nov. 2010 à 15:05
Bonjour,

Je souhaite créer un message d'erreur (nouvelle petite fenêtre qui s'ouvre avec message personnalisé) sous excel 2003, si dans E6 et F6 (qui comportent une liste déroulante), le "OUI" est sélectionné dans les deux cellules.

Je ne sais pas comment faire...

D'avance merci de votre aide

A voir également:

9 réponses

Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
18 nov. 2010 à 11:27
Salut tout le monde,

Je n'ai pu répondre plus tôt pour apporter des précisions, dans la demande il est bien précisé qu'il existait deux listes de validation ce qui supprime une deuxième utilisation de cette fonction, pour ma part je pense qu'il faut avoir recours au VBA ou supprimer les liste de validations en E et F.

pour répondre à Jojoob, le code à remplacer dans les propriétés de feuille.
J'ai complété le code par une gestion d'erreur

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([E6:F25], Target) Is Nothing Then
On Error GoTo errorHandler
If Target = "oui" And Target.Offset(0, 1) = "oui" Or _
Target = "oui" And Target.Offset(0, -1) = "oui" Then
MsgBox "Oui à été sélectionné pour la deuxième fois en " & Target.Address
errorHandler:
On Error GoTo 0
Exit Sub
End If
End If
End Sub
2
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
17 nov. 2010 à 17:19
bonjour
il y a des solutions via l'affichage d'un message par le système de validation, mais elle ne sont pas applicables à la fois avec une liste par cellule et une formule liant les deux cellules, c'est soit la liste, soit la condition
Peut être vous en sortirez vous simplement avec une mise en forme conditionnelle qui pourrait passer E6 et F6 en rouge si elles comportent toutes deux un OUI
pour cela, si excel avant 2007:
Sélectionner E6:F6
barre d'outil / Format /Mise en forme conditionnelle
dans la fenêtre à droite, choisir "formule"
la formule est:
=ET(E6="oui";F6="oui")
formater dans la couleur souhaitée



en attendant mieux.. peut être

Crdlmnt
0
Jojoob Messages postés 4 Date d'inscription mercredi 17 novembre 2010 Statut Membre Dernière intervention 18 novembre 2010
17 nov. 2010 à 20:03
Merci pour votre réponse.

En effet, ce que j'aimerais c'est vraiment un message d'erreur...
En attendant une autre solution je vais supprimer les listes déroulantes, car en plus elles sont déjà en mise en forme conditionnelle (OUI en vert, NON en rouge).

Salutations
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
17 nov. 2010 à 21:34
Salut,

En VBA, clic droit sur l'onglet de feuille/Visualiser le code
et colle ce code dans la feuille blanche


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([E6:F6], Target) Is Nothing Then
If Range("E6") = "oui" And Range("F6") = "oui" Then
MsgBox "quel message voulez vous afficher"
End If
End If
End Sub

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
il y a plus simple avec Validation
tu peux définir tes critères et s'ils sont remplis avec tes deux oui par exemple, tu as un message d'erreur qui s'affiche.

je susi sous 2007 chez moi mais de mémoire ça doit être dans Données puis validation et ensuite tu sélectionnes dans la liste déroulante
"égal à" cellule 1= cellule 2 =OUI
et là tu peux taper ton message qui doit s'afficher

tu as le choix entre un stop, une info, un avertissement
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
18 nov. 2010 à 00:16
Bonsoir, Anthony et Jojoob.

Pour aider Anthony (je suis chez moi), c'est bien dans Données/Validation des données qu'il faut aller.
Mais ensuite il faut choisir Options/Autoriser/Personnalisé et dans la fenêtre "Formule" qui apparaît, saisir =ET(E6="OUI";F6="OUI").
Puis cliquer sur l'onglet Alerte d'erreur et mettre le texte de son choix.

Cordialement.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 18/11/2010 à 10:41
Bonjour mon ami Raymond
C'est d'accord sur la solution, mais comme dit dans mon premier message , cette option est lié à la validation de données et n'est pas cumulable avec un menu déroulant.
Je pense que c'est dans cet but que jojoob a supprimé ses menus déroulants, vois son message 3

Par ailleurs, la solution est valable selon ta proposition, à ceci près:
le principe de validation par formule autorise mais n'interdit pas, ce qui veut dire qu'avec ta formule, seuls les deux OUI sont autorisés, ce qui est le contraire de la demande
La formule adaptée serait donc:
=(ET(OU($F6="NON";$E6="NON");$F6<>$E6))
et il est impératif de bloquer les colonnes pour qu'elle fonctionne, sinon elle se décale.
bien amicalement
Crdlmnt
0
Jojoob Messages postés 4 Date d'inscription mercredi 17 novembre 2010 Statut Membre Dernière intervention 18 novembre 2010
18 nov. 2010 à 08:22
Merci pour vos réponse.

Je vais utiliser la solution de Mike mais j'ai encore besoin d'aide.

Je ne connais pas du tout le visual basic, mais avec cette formule ça fonctionne.
Pouvez-vous svp me modifier la formule de manière à l'incrémenter jusqu'à E25 et F25 ?

Merci d'avance
0
Jojoob Messages postés 4 Date d'inscription mercredi 17 novembre 2010 Statut Membre Dernière intervention 18 novembre 2010
18 nov. 2010 à 11:47
C'est exactement ce qu'il me fallait.

Merci beaucoup

A+
0
Bonjour

Dans ces cas là, je ne me casse pas trop la tête, j'ajoute simplement une petite colonne qui sert de voyant à coté des 2 valeurs à traiter (en G6 ici). Cette colonne prendra comme valeur 1 ( texte formaté en rouge par exemple) si les 2 valeurs sont à OUI et vide sinon. Ensuite le format conditionnel met la cellule en rouge si la valeur est de 1.
Tu peux aussi remplacer la valeur 1 par un texte quelconque mais ça tient plus de place.
Tu peux même bloquer tout traitement si une seule cellule de cette colonne n'est pas vide ...
C'est simplet mais efficace..
0