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.
Ouf !
Ca a été laborieux.
Je pensais pouvoir tout mettre dans le Worksheet_Change. Que nenni !
Ca à l'air de marcher. C'est ce qu'on appelle de la bonne coopération.
Surtout à tester, à tester et à retester .
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 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
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 ?
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.
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,
Une petite tartine de VBA au petit déjeuné....vous êtes accro :-D
Merci pour l'aide ça fonctionne nickel.....
Bonne journée et merci encore.
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
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.
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.
Je viens de tester, ça marche.
de toute façon au delà de la ligne 12 il n'y a pas de liste déroulante donc il ne peut pas trouver la condition du msgbox.
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.
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?