Programme Gestion des stocks

Bonjour,

Pour mon cours d'initiation en VBA je dois faire un programme sur la gestion des stocks d'une entreprise.

En pièce jointe je vous met l'interface que j'aimerais faire (Cahier des charges).

Pour l'instant j'ai réussi à faire un mot de passe à l'ouverture de mon fichier et à programmer des nombres aléatoires pour les ventes du jour.

Mais je ne sais pas comment faire pour que mes lignes soient jaunes avec un triangle d'alerte au début de la ligne quand le nombre aléatoire des ventes change, qui signifierait qu'il faut mettre à jour l'état des stocks.

Le mot de passe d'ouverture est : mdpstock

Merci de votre aide.

Hello!

Ci-joint un fichier en retour.

La macro ajoutée se trouve dans la feuille Gestock 2.0.

Quand la valeur change ça se met en jaune avec un icône et quand tu supprime la valeur ça repasse en blanc

Super c'est presque ce que je veux faire.

La couleur j'ai réussi en mettant dans le Workbook :

Public Sub Workbook_OpenColore()

Range("A2:G6").Interior.ColorIndex = 27

End Sub

Mais il faudrait maintenant que la couleur jaune et l'image "attention" s'efface quand on clique sur le bouton "MAJ des ventes du jour" car cela voudra dire que la personnes a bien mis à jour son fichier.

Pour l'image comment tu as fait pour l'afficher, faut-il insérer l'image dans les propriétés de mon programme ?

Merci !

Je ne comprend pas vraiment la couleur à l'ouverture.

De ce que j'ai compris du CDC c'est que les personnes rentrent leurs valeurs de vente du jour dans le tableau (à ce moment les lignes modifiées s'affichent en jaune avec l'icône) et appuient sur le bouton de MAJ des ventes ce qui provoque une imputation du nombre de vente dans le stock (et qui implique un passage de la ligne en rouge si le stock résiduel est inférieur ou égal au seuil critique)

Ce n'est pa ça?

En faite ce ne sont pas les personnes qui rentrent les ventes du jours, elles doivent juste cliquer sur "MAJ des ventes du jour" pour les ventes changent aléatoirement grâce à un Randomize. Et pour les informer qu'elles doivent cliquer sur le bouton "MAJ des ventes du jour" à l'ouverture du fichier excel les lignes doivent être en jaune avec le logo du message alerte. Dès que l'utilisateur a cliqué sur le bouton alors les lignes redeviennent blanches et le message d'alerte disparais.

C'est à partir du moment ou l'utilisateur a cliqué sur le bouton qu'un calcul se fait dans 'quantité en stock' car on fera les quantités - les ventes et à ce moment des lignes apparaîtront en rouge quand la quantité en stock est inférieur au seuil critique.

Je me suis un peu trompé dans le cahier des charges...

J'espère que vous me comprenez ??

Oui je comprend. Bien que je ne voie pas l’intérêt de générer des ventes aléatoires.

En tout cas tu peux garder ton code pour l'ouverture du tableau.

Pour afficher l'image "Attention" il faut la copier/coller dans ton tableau.

L'image a un nom quand tu cliques dessus.

Avec ce nom tu peux afficher ou masquer l'image avec le code:

Sheets("nom_de_la_feuille").Shapes("nom_de_l'image").Visible = True/False

Tu mets True pour afficher l'image et false pour la masquer.

Si les cellules doivent redevenir blanches au moment de cliquer sur le bouton il te suffit de réattribuer un colorindex de 0 à ton Range de Cellules (de la même façon que ce que tu as fais pour les colorer à l'ouverture du classeur)

Tu masques ensuite tes icônes avec le code ci dessus.

N'oublie pas d'ajouter à ton code d'afficher les images à l'ouverture du classeur

ok merci.

Pouvez vous m'expliquer votre code :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("F2:F6")) Is Nothing Then

If vente_old <> Target.Value Then

Range(Target.Offset(0, -5), Target.Offset(0, 1)).Interior.ColorIndex = 6

Sheets("Gestock 2.0").Shapes("Image " & Target.Row + 1).Visible = True

End If

If Target.Value = "" Then

Range(Target.Offset(0, -5), Target.Offset(0, 1)).Interior.ColorIndex = 0

Sheets("Gestock 2.0").Shapes("Image " & Target.Row + 1).Visible = False

End If

End If

vente_old = Target.Value

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("F2:F6")) Is Nothing Then vente_old = Target.Value

End Sub

'Dans la feuille on introduit une macro qui se déclenchera à chaque modification de cellule dans la feuille. Target correspond à la cellule modifiée.
Private Sub Worksheet_Change(ByVal Target As Range)
'Comme on ne veut pas qu'il fasse d'action dans tous les range de cellule on lui demande si il y a une intersection de plage entre la cellule target et le range de cellule choisi.
If Not Intersect(Target, Range("F2:F6")) Is Nothing Then
'Comparer la variable old (remplie via la seconde partie de la macro) avec la cellule target. Ceci revient à vérifier que la cellule modifiée a bien changé de valeur.
If vente_old <> Target.Value Then
'S'il y a effectivement modification, colorer la ligne du tableau correspondant à la target en jaune
Range(Target.Offset(0, -5), Target.Offset(0, 1)).Interior.ColorIndex = 6
'Et afficher l'image correspondant à la ligne
Sheets("Gestock 2.0").Shapes("Image " & Target.Row + 1).Visible = True
End If
'Si la cellule est modifiée mais que la nouvelle valeur est nulle, recolorer la ligne en blanc et masquer l'image
If Target.Value = "" Then
Range(Target.Offset(0, -5), Target.Offset(0, 1)).Interior.ColorIndex = 0
Sheets("Gestock 2.0").Shapes("Image " & Target.Row + 1).Visible = False
End If
End If
'Donner la nouvelle valeur de la cellule à la variable old
vente_old = Target.Value
End Sub

'La seconde macro intervient en fait en premier car elle intervient à chaque changement de selection.
'Elle se déclenchera donc quand l'utilisateur va cliquer sur une cellule de la fauille (Ou qu'une macro le fera a sa place)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'De la même façon que plus haut on met une action uniquement dans le range voulu
'On assigne la valeur de la cellule Target (celle qui est séléctionée) à la variable old.
If Not Intersect(Target, Range("F2:F6")) Is Nothing Then vente_old = Target.Value
End Sub

J'espère que c'est clair de cette façon je ne sais pas expliquer mieux que ça.

Rechercher des sujets similaires à "programme gestion stocks"