CRÉER UN MESSAGE SOUS Excel ?
Bonsoir;
y'a t'il un moyen d'ajouter un message d'alerte sous excel ?
Dans mon cas (si cela est possible ) je veux q'un message apparaît si je veux saisir la vente d'un article ;alors que que j'ai zéro au stock
Merci
Salut,
créer un message est possible.
Mais il faut d'abord commencer par gérer le stock........car non, une liste d'achat et une liste de vente ne sont pas une gestion de stock !!!!
Commence par faire une somme de toutes les ref que tu achetes/vends et après on verra pour le message.....
Cordialement.
Bonsoir;mamote80;
pour la gestion des stocks ;j'ai une liste d'achat ;une liste de vente et une feuille de regroupement par famille ou il y'a le cumule des achats;le cumule des ventes et le stock final par article.MAIS s'il y'a des propositions pour mieux gérer mon stock ; je te remercie d'avance.
Merci
Bonsoir;mamote80;
pour la gestion des stocks ;j'ai une liste d'achat ;une liste de vente et une feuille de regroupement par famille ou il y'a le cumule des achats;le cumule des ventes et le stock final par article.MAIS s'il y'a des propositions pour mieux gérer mon stock ; je te remercie d'avance.
Merci
Bonjour,
Je viens de parametrer ton fichier comme tu le souhaites je pense.
En fait,j'ai utilisé la fonction intersect.
Tu lui definies une zone et si tu modifies une cellule dans la zone tu peux y declencher un comportement.
Ce que j'ai fait :
- lecture de l'article selectionné
- je parcours la feuille CCC voir les stocks (qté dans Stock Final SF)
- Si stock <= 0 alors message box qui t'alerte
Test à faire sur l'article KDL-42 W 804 A/ZME 6
Le programme gère en plus les dernières lignes pour parcourir lea feuille CCC en cas d'ajout d article et de ventes.
A placer dans feuille 3 ventes
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' La variable KeyCells contient les cellules qui déclencheront
' une alerte si elles sont modifiées.
derlig = Cells(Cells.Rows.Count, "E").End(xlUp).Row
Set KeyCells = Range("E2:E" & derlig)
'on controle ici le comportement si on touche aux lignes concernées
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
'je parametre ma derniere ligne
derlign = Sheets("CCC").Cells(Cells.Rows.Count, "B").End(xlUp).Row
'Contrôle du stock on parcoure la feuille CCC
For Each c In Sheets("CCC").Range("B3:B" & derlign)
If c = Target Then
stock = c.Offset(0, 6)
'controle qté en stock
If stock <= 0 Then
MsgBox "Le stock de cet article est épuisé !", vbExclamation, "Etat des Stocks"
End If
End If
Next
'je repasse ma valeur de stock à 0
stock = ""
End If
End Sub
Bonsoir;VB_troyes
Merci c'est très interessant ; c'est plus fort que mes compétence https://forum.excel-pratique.com/posting.php?mode=smilies&f=2#; mais il y'a une petite chose : si le stock d'un article est > a zéro (par exemple SF=2)et on fait une saisie de vente de 3 de cet article ;alors là aussi le message doit apparaître pour ne pas saisir.
Merci
SQUALLI a écrit :Bonsoir;VB_troyes
Merci c'est très interessant ; c'est plus fort que mes compétence https://forum.excel-pratique.com/posting.php?mode=smilies&f=2#; mais il y'a une petite chose : si le stock d'un article est > a zéro (par exemple SF=2)et on fait une saisie de vente de 3 de cet article ;alors là aussi le message doit apparaître pour ne pas saisir.
Merci
Bonjour,
J'y ai pensé aussi mais tu indiquais a la saisie de l'article.
La quantité est elle saisie avant ou apres l'article ?
A défaut tu peux toujours le parametrer à la saisie de la quantité et qu'il recherche la référence en faisant l'operation stock - ventes
Cdt,
Bonjour et merci
- ) la quantité est saisie après l'article
- ) pour le paramétrage ;je ne crois pas que je peut le faire !!
- ) comment faire pour copier la formule pour qu'elle fonctionne pour les trois familles ("AAA;BBB;CCC ")
Bonsoir,
Je pense couvrir tes demandes avec ce code.
- la quantité est saisie après l'article: ok mais je fais un check quand meme
- comment faire pour copier la formule pour qu'elle fonctionne pour les trois familles ("AAA;BBB;CCC ") : Passage en parametre de la colonne D dans mes sheets()..
Cdt,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' La variable KeyCells contient les cellules qui déclencheront
' une alerte si elles sont modifiées.
derlig = Cells(Cells.Rows.Count, "E").End(xlUp).Row
Set KeyCells = Range("F2:F" & derlig)
'on controle ici le comportement si on touche aux lignes concernées
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
'si qté vide pas de message
If Target = "" Then
Exit Sub
End If
'message si saisie d'une quantité sans article
If Target.Offset(0, -1) = "" And Target.Offset(0, -5) <> "" Then
MsgBox "Merci de saisir un article au préalable! Supprimez la quantité!"
Exit Sub
Target = ""
End If
'je parametre ma derniere ligne et la feuille selectionnee AAA ou BBB ou CCC
feuille = Target.Offset(0, -2)
derlign = Sheets(feuille).Cells(Cells.Rows.Count, "B").End(xlUp).Row
'Contrôle du stock on parcoure la feuille CCC + definition du stock
For Each c In Sheets(feuille).Range("B3:B" & derlign)
If c = Target.Offset(0, -1) Then
stock = (c.Offset(0, 6) + Target)
MsgBox stock
'controle que les achats couvrent les ventes (profil de stock)
If c.Offset(0, 1) < c.Offset(0, 4) Then
MsgBox "Le stock de cet article est épuisé ! Stock restant : " & stock & " unités", vbExclamation, "Etat des Stocks"
Target = ""
Exit Sub
End If
End If
Next
End If
sortie:
End Sub
Bonsoir;et Merci
- )Passage en paramètre de la colonne D dans mes sheets().. : je n'ai rien compris (je suis un zéro du VBA )
- ) est ce que je peut ;après avoir essayer ;revenir a vous pour d'autres demandes concernant ce classeur et un autre classeur "planning de présence "?
Dans ta colonne D tu as le type article AAA BBB ou CCC
En vb on indique quelle feuille est impactée en faisant Sheets("Feuille Concernée").select
Moi j'ai Donc fait Sheet(ColonneD de ta ligne).select
Oui pas de pb
Bonsoir et Merci
- ) j'ai normalement une vingtaine de FAMILLE : est ce que je doit copier colle la formule 20 fois et changer chaque fois le nom de la feuille ?
- ) SI je veux savoir comment on change le message qui apparaît ?
- )Je suis entrain de préparer un planning de présence pour les ouvriers qui sont sous ma responsabilité (voir pièce jointe ) et je me trouve coincé : je veux que la couleur de chaque code(voir "Données") apparaît quand je choisi ce code dans "MOTIF".
- )du lundi a jeudi et le samedi ;le nombre d'heures travailler est 8h30mn /jour alors que le vendredi c'est 7h30mn comment faire pour mètre deux formules.
- )comment faire pour avoir les heures en moins.
et si tu a des remarques ou des propositions ;n’hésite pas .
MERCI
Bonsoir,
Deja pour l'ancien fichier,
Tu vas donc recréer de nouvelles feuilles? Non rien a adapter, il faut juste que le nom de ta feuille soit egale a celle saisie dans la colonne D dans achats et ventes.
Le message est changeable sur le code vb : msgbox " XXXXX"
Cdt,
voila pour la couleur deja
Bonsoir;VB_troyes
- )Merci pour la couleur;mais il y'a peut être une petite erre ure ;(voir pièce jointe )des motifs qui prennent la couleur des autres.
- )pour la somme des heures en moins ; j'ai trouver une formule (voir colonne j ) et merci de la vérifier.
- )Reste le vendredi dont le nombre heures de travail diffère des autres jours.
-) pour notre premier classeur je vais le voir dimanche .
Merci pour tous.
Bonsoir;VB_troyes
- )Merci pour la couleur;mais il y'a peut être une petite erre ure ;(voir pièce jointe )des motifs qui prennent la couleur des autres.
- )pour la somme des heures en moins ; j'ai trouver une formule (voir colonne j ) et merci de la vérifier.
- )Reste le vendredi dont le nombre heures de travail diffère des autres jours.
-) pour notre premier classeur je vais le voir dimanche .
Merci pour tous.