Gestion des stocks VBA

Skymap

XLDnaute Nouveau
Bonjour,

Dans le cadre d'un projet, je dois réaliser un fichier Excel permettant de gérer les stocks d'une structure. Je dispose donc de l'inventaire des produits (à titre d'exemple). Il s'agit d'une activité qui porte sur de l'achat pour de la revente.
Dans mon fichier j’ai réalisé un premier formulaire (plateforme d’accueil) avec les boutons suivants : Entrés / Sorties / Produits / Quitter.

Arrivé à ce stade, je commence à rencontrer des difficultés dans l’écriture vba. Je me suis pourtant aidé de projets similaires, mais je rencontre des difficultés à les adapter à mon projet.

Mon idée consiste, à l’aide d’un formulaire de copier l’ensemble des flux entrants (sur l’onglet « Entrées ») pour une commande fournisseur (la commande pouvant avoir plusieurs produits commandés). Cette étape me permettant ensuite de sommer les quantités achetées par produits (en colonne G onglet « Produits »).
De même concernant les flux sortants.

La trace des flux sortants dans l’onglet « Sorties » me permettant après de réaliser un fichier de facturation à l’aide des numéros de commande clients.

Je suis désormais à la recherche de conseils et solutions afin de pouvoir avancer dans mon projet. Je suis bien conscient que mon projet est ambitieux mais il me semble réalisable. Il n’est évident pour moi de retranscrire tout cela à l’écrit, ainsi j’espère avoir été compris dans ma demande.

Si vous avez du temps à m'accorder pour m'aider et/ou me conseiller ... je vous serais reconnaissant.
Si je peux vous éclaircir davantage ;)
Merci d'avance,

Skymap
 

Pièces jointes

  • Projet VBA.xlsm
    62 KB · Affichages: 188
  • Projet VBA.xlsm
    62 KB · Affichages: 160
  • Projet VBA.xlsm
    62 KB · Affichages: 175

vgendron

XLDnaute Barbatruc
Re : Gestion des stocks VBA

Autre modif à effectuer pour éviter que le prix d'achat apparaisse dans un format texte

Code:
Private Sub CommandModification_Click()

Dim Ligne As Long
Dim I As Integer
Dim ws As Worksheet

Set ws = Sheets("Produits")

If MsgBox("Confirmez-vous la modification de ce produit ?", vbYesNo, "Demande de modification") = vbYes Then
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    Ligne = Me.ComboBox1.ListIndex + 2
    
    For I = 1 To 4
        If Me.Controls("TextBox" & I).Visible = True Then
            ws.Cells(Ligne, I + 1) = Me.Controls("TextBox" & I)
        End If
    Next I
' permet de remettre le format nombre dans la colonne E
    ws.Cells(Ligne, 5) = Val(Replace(Cells(Ligne, 5), ",", "."))
End If

End Sub
 

Skymap

XLDnaute Nouveau
Re : Gestion des stocks VBA

Bonjour à vous deux,

Il y a effectivement un pb concernant le bouton modification, suite à ces remarques j'ai remplacer "combobox2" par "combobox1", car ce premier était inexistant.

Vous trouverez ci dessous, comment j'ai fonctionné pour résoudre ce problème.
Par chance, je pense y être parvenu.

Ligne = Me.ComboBox1.ListIndex + 2
ws.Cells(Ligne, "A") = ComboBox1

For I = 1 To 4

If Me.Controls("TextBox" & I).Visible = True Then
ws.Cells(Ligne, I + 1) = Me.Controls("TextBox" & I)

End If

Next I
' permet de remettre le format nombre dans la colonne E
ws.Cells(Ligne, 5) = Val(Replace(Cells(Ligne, 5), ",", "."))

Merci à vous pour vos remarques ;)

Fichier m.a.j. en p.j. et sous 3eme édition (pour faciliter la compréhension de l'évolution du projet).

Ceci dit, point tjrs en suspens, bouton analyse (tableau et graph) avec pb date.

Par avance, merci
Skymap
 

Pièces jointes

  • Projet VBA3.xlsm
    81.5 KB · Affichages: 72
  • Projet VBA3.xlsm
    81.5 KB · Affichages: 67
  • Projet VBA3.xlsm
    81.5 KB · Affichages: 79

vgendron

XLDnaute Barbatruc
Re : Gestion des stocks VBA

Hello Skymap

tu dis avoir remplacé le combox2 par combobox1
Code:
Ligne = Me.ComboBox1.ListIndex + 2
ws.Cells(Ligne, "A") = ComboBox1

j'ai essayé, et j'ai beau taper un autre nom pour la référence produit, quand je clique sur modification / oui, aucune modif n'est prise en compte (pour l'intitulé de la référence)

exemple:
je sélectionne dans la liste Bandedecoton070
je remplace par COTON70
je modifie la catégorie bandage par "TRUC"
quand je modifie.. aucune modif n'est prise en compte..
par contre. si je ne modifie pas le nom de la référence. pas de souci, les autres modifs sont prises en compte..
ceci est tout à fait normal puisque en cliquant sur modifier, la macro recherche la ligne ou apparait la référence.. sauf que. puisque elle est nouvelle. la macro ne trouve rien. donc. ne fait rien ;-)

pour pourvoir modifier la référence. il faut pouvoir "sauvegarder" la référence initiale (au moment où on sélectionne dans la liste de choix par exemple)

et pour le bouton analyse.. formulaire vide. il faudrait que tu expliques (ou re expliques) ce que tu souhaites

Hmm.; cette nouvelle année promet encore de beaux noeuds au cerveau ;-) cool ;-)
 

vgendron

XLDnaute Barbatruc
Re : Gestion des stocks VBA

pour "sauvegarder" la référence initiale. suffit plutot de "sauvegarder" la LIGNE à modifier
cette "Ligne" à modifier est trouvée par le code suivant (dans sub combobox1_change)
Code:
Ligne = Me.ComboBox1.ListIndex + 2

suffit donc de passer la variable Ligne en public, pour qu'elle soit visible par toutes les macro. notamment celle qui nous intéresse:
Private Sub CommandModification_Click()

voila pour ca. maintenant.. modifier la référence..

petite analyse:

Code:
 If Me.ComboBox1.ListIndex = -1 Then Exit Sub

permet de sortir de la macro si on clique sur modifier alors qu'on a rien sélectionné dans la liste "référence" (combobox1)

l'ennui.. c'est que si on a sélectionné puis modifié l"intitulé de la référence, cette ligne de code renvoit AUSSI -1
puisque comme expliqué dans le post précédent; ce nouvel intitulé n'existe pas.. donc. la macro va sortir.. SAUF SI
on rajoutte une condition de texbox1 vide pour distinguer la modif du cas précédent (non sélection dans le combobox 1)

ce qui donnerait un code du genre..
Code:
Private Sub CommandModification_Click()

'Dim Ligne As Long
Dim I As Integer
Dim ws As Worksheet

Set ws = Sheets("Produits")

If MsgBox("Confirmez-vous la modification de ce produit ?", vbYesNo, "Demande de modification") = vbYes Then
    'permet de sortir si rien n'est sélectionné.
    If ((Me.ComboBox1.ListIndex = -1) And (Me.TextBox1 = "")) Then Exit Sub
    
    ws.Cells(Ligne, "A") = ComboBox1
        For I = 1 To 4
            If Me.Controls("TextBox" & I).Visible = True Then
                ws.Cells(Ligne, I + 1) = Me.Controls("TextBox" & I)
            End If
        Next I
    ' permet de remettre le format nombre dans la colonne E
    ws.Cells(Ligne, 5) = Val(Replace(Cells(Ligne, 5), ",", "."))
End If
 
End Sub

Voila.. bon. sur ce. j'ai soif. je file au bar.. ;-)
 

Skymap

XLDnaute Nouveau
Re : Gestion des stocks VBA

Salut,

Concernant le bouton modification, je suis satisfait du résultat. Certes à l’heure actuel je ne peux pas modifier la référence, mais ce n’est pas grave. J’estime que la référence n’a pas à être modifiée. Ainsi d’après moi, le pb du bouton modif est solutionné.

A propos de mon Userform4 => analyse et tableau. Je souhaite réaliser un tableau préparatoire en feuille « Analyse ». En définitive, ce tableau doit m’aider à réaliser un ou plusieurs graphique(s) sur l’userform4 (suivant les info et données du tableau).

Exemples :
- nombre de flux entrées et sorties (par mois / par catégorie)
=> d’où la nécessité de travailler sur la date pour chaque flux
- quantité de produit entrant et sortant
=> constater une évolution dans le temps ou une répartition des produits par catégorie

Voici mon souhait (jspr avoir été le plus clair possible). Le pb c’est que je ne connais pas la faisabilité de cette tâche. A ce stade, je suis ouvert à toute proposition et suggestion pour la réalisation de celle-ci (sujet assez libre en raison de mon manque de savoir faire sur cette tâche).

Je tenais à te remercier pour ton suivi, tes conseils et ton implication dans mon projet. En espérant pouvoir encore y bénéficier pour cette dernière ligne droite.

Skymap,
 

Pièces jointes

  • Projet VBA3.xlsm
    91.5 KB · Affichages: 164
  • Projet VBA3.xlsm
    91.5 KB · Affichages: 152
  • Projet VBA3.xlsm
    91.5 KB · Affichages: 207

Skymap

XLDnaute Nouveau
Re : Gestion des stocks VBA

Je suis parvenu, ces derniers jours, à remplir mes objectifs et atteindre le résultat que j'espérais. Je considère donc ma demande remplie. Un grand merci aux différentes personnes qui se sont manifestés pour l'élaboration du projet.
Merci à bientôt.
Skymap
 

Discussions similaires

Réponses
10
Affichages
241
Réponses
2
Affichages
990
Réponses
9
Affichages
168

Statistiques des forums

Discussions
312 299
Messages
2 086 996
Membres
103 423
dernier inscrit
Guyom GIL