XL 2016 Problème d'alerte d'erreur qui ne s'active pas

scoubidou35

XLDnaute Occasionnel
Bonjour,
J'essais d'avoir un message d'alerte d'erreur qui doit s'activer pour indiquer que la surface est manquante et qu'il faut saisir.
J'ai essayé avec Validation des données mais ca ne fonctionne pas et je n'arrive pas à comprendre pourquoi.
Merci pour l'aide et bien évidemment je suis dispo si besoins d'info.
 

Pièces jointes

  • FICHIER TEST.xlsx
    13.5 KB · Affichages: 4

scoubidou35

XLDnaute Occasionnel
Bonsoir Scoubidou,
Un essai en PJ avec ce que j'ai compris :
Si catégorie remplie mais pas de X dans la colonne 1 alors Alerte ( j'ai mis fond rouge )
Si tout vide ou tout ok, pas d'alerte.

Bonsoir Sylvanu,
Dans votre fichier si je rempli catégorie immédiatement j'ai le fond rouge.
la X ne sert que pour ma formule pour établir des listes déroulantes dynamiques. Mais elle permet de voir si les cases catégorie et variété sont bien rempli (la X disparait quand toutes les données necessaires sont là).
Je que j'essais de faire c'est que si vous sélectionnez par exemple Fraise dans catégorie et que vous cliquez sur la première ligne de la liste dans variété (ligne blanche) et bien dans surface un 0 apparaît et c'est quand un 0 apparait que je voudrais un message d'alerte pour indiquer à la personne qu'il faut remplir la surface par une valeur valide (>0).
J'espère avoir été plus clair dans mes explications. Sinon n'hésitez pas à me le faire savoir.
Merci encore
 

scoubidou35

XLDnaute Occasionnel
J'ai le droit à un autre essai ? :)

Par contre j'ai un souci : Si je sélectionne Fraise, puis ligne vide dans Variété, alors la liste déroulante n'a plus de choix sinon la ligne vide. Normal ?

Oui autant d'essai que vous voulez :). Concernant la liste déroulante oui c'est normale du moins je n'ai pas réussi à faire mieux avec mes formules. La liste déroulante est vide car la ligne est validée (la X disparait) pour faire réapparaitre la liste il faut se positionner sur la case variété et cliquer sur suppr et la la x revient et la liste avec.
Alors c'est mieux car la case rouge apparait au bon moment mais ce que je veux c'est un message d'alerte d'erreur à la place ou en complément de la coloration de la case.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Un peu de VBA pour le fun de si bon matin.
Le message est uniquement émis lorsque l'erreur est commise.
Ensuite si l'erreur persiste il ne dit rien mais laisse la cellule en rouge.
Ce qui évite d'avoir des alertes en permanence.
( par contre penser à acitiver les macros )
 

Pièces jointes

  • FICHIER TEST (4).xlsm
    18 KB · Affichages: 4

scoubidou35

XLDnaute Occasionnel
Bonjour,
Un peu de VBA pour le fun de si bon matin.
Le message est uniquement émis lorsque l'erreur est commise.
Ensuite si l'erreur persiste il ne dit rien mais laisse la cellule en rouge.
Ce qui évite d'avoir des alertes en permanence.
( par contre penser à acitiver les macros )

Bonjour sylvanu,
J'ai un petit problème avec la macro dans mon tableau d'origine. Dans votre macro vous travailler jusqu'à a ligne 12 du tableau. Mais comment faire quand la quantité de ligne va augmenter avec les années. J'ai essayé avec en remplaçant le 12 par End(xlUp) mais çà ne marche pas.
Merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Scoubidou,
VB:
Vous remplacez :

If Target.Row >= 4 And Target.Row <= 12 And _
        Target.Column >= 12 And Target.Column <= 13 Then        ' A adapter avec la base réelle

par :
    If Target.Row >= 4 And Target.Row <= 1000 And _
        Target.Column >= 12 And Target.Column <= 13 Then        ' A adapter avec la base réelle
Ainsi la macro sera activée de la ligne 4 à la ligne 1000.
Cela suppose que les colonne LM soit réservées à Variété et surface.
Sinon, ça va être plus complexe. Vous me direz si ainsi ça vous va.
( j'avais mis 4 12 pour éviter de déclencher intempestivement la macro, je ne savais pas ce qu'il y avait au dela de 12 dans votre fichier final.
 

scoubidou35

XLDnaute Occasionnel
Bonjour Scoubidou,
VB:
Vous remplacez :

If Target.Row >= 4 And Target.Row <= 12 And _
        Target.Column >= 12 And Target.Column <= 13 Then        ' A adapter avec la base réelle

par :
    If Target.Row >= 4 And Target.Row <= 1000 And _
        Target.Column >= 12 And Target.Column <= 13 Then        ' A adapter avec la base réelle
Ainsi la macro sera activée de la ligne 4 à la ligne 1000.
Cela suppose que les colonne LM soit réservées à Variété et surface.
Sinon, ça va être plus complexe. Vous me direz si ainsi ça vous va.
( j'avais mis 4 12 pour éviter de déclencher intempestivement la macro, je ne savais pas ce qu'il y avait au dela de 12 dans votre fichier final.

Toujours aussi réactif ;-)
J'ai essayé avec votre méthode mais si je clique par exemple sur la ligne 1000 en column 12 il me mets le message alors que c'est hors du tableau. Je suis entrain de regarder avec la commande Intersect mais je dois mal faire car ca ne fonctionne pas.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Il y a une config qui pose problème, c'est si vous mettez un espace dans une cellule de la colonne L, alors il déclenche l'alerte.
Dans la V6, il faut un espace dans la colonne L ET quelque chose dans la colonne K. C'est plus sécure.
 

Pièces jointes

  • FICHIER TEST (6).xlsm
    18.1 KB · Affichages: 3

scoubidou35

XLDnaute Occasionnel
Il y a une config qui pose problème, c'est si vous mettez un espace dans une cellule de la colonne L, alors il déclenche l'alerte.
Dans la V6, il faut un espace dans la colonne L ET quelque chose dans la colonne K. C'est plus sécure.

oui je l'avais vu ce probleme et j'ai mis le code :

VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row >= 4 And Target.Row <= 1000 And _
        Target.Column >= 12 And Target.Column <= 13 Then        ' A adapter avec la base réelle
        If Target.Offset(0, 1).Value = 0 Then
            MsgBox "La variété est vide." & _
            Chr(10) & Chr(13) & "Veuillez rectifier la ligne " & Target.Row & "."
        End If
    End If
End Sub

J'utilise Target.offset. Sinon il n'y a pas moyen de faire quelquechose pour Target.row<=1000 et faire en sorte que la ligne maxi augmente automatiquement avec la taille du tableau?
 

Discussions similaires

Réponses
8
Affichages
415

Statistiques des forums

Discussions
312 115
Messages
2 085 447
Membres
102 889
dernier inscrit
monsef JABBOUR