Problème de gestion des stocks

Bonjour à tous,

Alors voila je dois réaliser un programme de gestion des stocks sous deux classeur différent.

L'un servira a la gestion des stocks l'autre est un classeur d'intervention.

Les liens entre ces deux classeurs sont les pièces que l'ont a utilisé pour les réparations, et la quantité de ces pièces.

En théorie, voici les principaux principes de fonctionnement.

1) La démarche est la suivante: on effectue une intervention, on ouvre le fichier excel des interventions, on entre les données lié a l'intervention puis le programme nous demande si l'on a eu recours a des pièces. Si non fin, si oui, quelle pièce (code article) et quelle quantité (j), au même moment le fichier excel de gestion des stocks s'active il recherche la pièce correspondante au code article donnée et il se rend a la colonne ou est entrer le nombre de pièce disponible afin de le modifier (soustraire une quantité j d'objet) une fois que ceci est fais (sans qu'il soit nécessaire d'ouvrir le classeur gestion des stocks), il nous demande si l'on a d'autre pièces a rentrer, on les entre une par une c'est ce qui me semble le plus simple.

2) Le programme de gestions des stocks doit vérifier tous les matins le niveau du stock et si celui dépasse un seuil minimum il prend le code article le met dans un tableau récapitulatif puis envoi ce tableau par mail a la personne responsable, de manière automatique sans appui sur un bouton ou quoi que ce soit d'autre et sans doublon c'est a dire ne pas envoyé le tableau deux jours de suites si les éléments sont les mêmes. Ce fichier excel pourra être assimilé a une base de donnée c'est a dire lorsque je cherche un article je peux facilement trouver son code.

Alors j'ai plusieurs problème de programmation, j'ai essayé tant bien que mal d'y remédiez sans grand succès.

Je mets ces programmes dans un autre message.

En soit cela parait simple mais c'est extrêmement compliqué, si vous voulez plus de détails n'hésitez surtout pas a demander.

En fin, il y a les moins bons, les bons, les très bons et les excellents. Je fais partis, vous l'aurez compris, d'un catégorie non cité qui sont les nullissimes (sur une échelle de 1 a 10 je mérite moins cent)

C'est assez urgent je peux vous donner les codes que j'ai déjà écris mais j'en suis pas fière et j'ai jamais programmer de ma vie c'est une première pour moi.

Merci a tous par avance, j'attends avec impatience vos réponses!


Sub Bouton4_Cliquer()
reponse = MsgBox("Avez vous des pièces a rentrer ?", vbYesNo)
If reponse = vbYes Then
UserForm6.Show
Else
End If
End Sub

Userform 6 -> code

Private Sub CommandButton1_Click()
'i est la variable code article
Dim i As Byte
'j est la variable de la quantité prise
Dim j As Byte
'K est la variable de la quantité de stock disponible pour la pièce i selectionner avant d'y soustraire j
Dim K As Byte
'l est la variable qui nous donne la ligne ou est situé la piece i
Dim l As Byte
' en fonction de la reponse on a une action ou une autre
reponse = MsgBox("Avez vous des pièces a rentrer ?", vbYesNo)
'si la réponse est oui alors on effectue le programme de recherche si non la fenetre se ferme
If reponse = vbYes Then
'une boite s'affiche et nous demande d'entrer le code article dans une case (la textbox1)
'et la quantité prise de cette pièce (dans la textbox2)
'1
i = TextBox1
j = TextBox2
reponse1 = MsgBox("Etes vous sûre de votre saisie ?", vbYesNo)
'on laisse le temps a l'utilisateur de revoir sa saisie afin de palier les erreurs de frappes
If reponse1 = vbYes Then
'Workbooks("gestion des stocks").Activate -> cette ligne est pour me rappeler que je ne dois pas oublier de travailler dans le classeur gestion des stocks
'j'ai essayé de faire la décrémentation dans une cellule annexe afin de tester si mon programme ne marchait pas a cause d'un soucis de cellule mais non
Range("Y5").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(i,Tableau1,5)"
K = Range("Y5")
'je veux verifier que K soit un nombre pour verifier que la recherche a été fructueuse et que l'utilisateur n'a pas rentrer un code article erroné
'mais il me dis que la fonction isnumber n'existe pas
If IsNumber(K) = False Then
'If k n'est pas un nombre reel then -> a réécrire en code
MsgBox "le code article n'est pas valide"
'on fait le calcul mathématique
Else: K = K - j
'dans la colonne E il y a les quantités présente en stock. Je cherche une fonction qui puisse m'extraire la ligne de l'article i afin d'aller a la cellule E de la ligne de cette article
'Range ("E"&l).activate -> a voir ce qui ne vas, pas extraire le numéro de ligne
'Range ("E"&l) = k -> idem ligne du dessus
End If
Else
'si il n'est pas sure de ce qu'il a rentrer on enleve la boite de dialogue qui demande si il est sure et on le laisse revoir sa saisie
End If
Else
End If
'Message disant "etes vous sure de ne pas avoir utiliser de piece?" et pareille si oui alors fin du programme sinon on retourne a 1
'nouveau programme ici disant "avez vous d'autre piece a rentrer si non fin du programme, si oui alors boucle tant que la réponse n'est pas un non
End Sub

mais ça ne marche pas du tout du tout du tout !


Sub Bouton2_Cliquer()

'envoi d'un mail et mise en forme conditionelle

ValeurA = Range("E7").Value
If ValeurA < 20 Then '<- ici au lieu de mettre une valeur je veux mettre une cellule genre qu'il compare les cellules Ei aux cellule Fi pour i allant de 7 a 400 (par exemple) et si la valeur de Ei est inferieur a celle de Fi alors il met en rouge la cellule Ei
Range("E7").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 250
End With
Range("A7").Select
Selection.Copy
Sheets("Réabilitation").Select
Range("A5").Select
ActiveSheet.Paste
'->Ensuite pour toutes les cellules rouges (qui auront entre nous comme indice f), on prends leurs codes article que l'on met dans un nouveau tableau (les codes articles sont les cellules Af) puis on copie se tableau et l'on envoi un mail disant qu'il faut commander ces pièces, sachant qu'il faut que excel vérifie tous les matins a 9h le fichier et qu'il envoi le mail après avoir vérifier et que l'on efface le tableau après. Pour éviter d'envoyer deux fois le même tableau. Selon moi c'est le plus judicieux si vous avez des solutions proposez je suis ouvert a tout! 
'ci dessous un programme d'envoi de mail automatique mais il ne marche pas
'email

'Dim olApp As Outlook.Application
'Set olApp = CreateObject("outlook.application")
'Dim olMail As Outlook.MailItem
'Set olMail = olApp.CreateItem(olMailItem)

'
'With olMail
'.To = "xxx@yy.com"
'.CC = "zzz@yy.com"
'.Subject = " reporting " & Format(Date - 1, "dd-mm-yyyy")
'.Body = Range("A1").Value & vbCrLf _
' le fichier comportant la macro devrait avoir les données du corps du mail dans les cellules A1...A4
'& Range("D1").Value & Format(Date - 1, "dd-mm-yyyy") & " ." & vbCrLf & vbCrLf _
'& Range("A3").Value & vbCrLf & vbCrLf _
'& Range("A4").Value
'.Attachments.Add "X:\Reporting.xls"
'.send
'End With
Else
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
End Sub

voila ce sont les deux seuls code qui me donne du fil a retordre


Et pour finir, merci a toutes celles et ceux qui m'auront aidé ne serait-ce que pour une simple virgule.

bonjour

pour commencer une réponse, et sans doute finir ce fil :

Excel+beaucoupdeVBA+beaucoupdecourage peuvent te donner une belle usine à gaz. Et parfois les usines à gaz fonctionnent durant 1 ou 2 ans.Excel n'est pas conçu pour gérer des tables relationnelles.

Il faut préférer Access ou un autre SGBD

ce sera beaucoup plus simple et plus fiable et évolutif durant 10 ou 20 ans.

Et si on avait les classeurs de Boa pour nous guider sur ses difficultés ?

Rechercher des sujets similaires à "probleme gestion stocks"