Bonjour,
J'ai trouvé un tuto sur ce site, avec une vidéo "Facturation avec interface graphique", mais je suis coincé. J'ai programmé un bouton de mon userform, et le résultat n'est pas celui escompté.
Je joins ci-dessous mon fichier Excel avec Macro, nommé "facturation-vba.xlsm". Le procédé est simple : l'interface graphique doit permettre à la facture de se remplir automatiquement sur l'onglet "facturation" de la feuille excel.
La programmation du bouton "ajouter" doit permettre de vérifier si le contenu de la zone de saisie "quantite" est bien numérique, sinon un message d'erreur apparaît, et on sort de la procédure. Sinon, elle doit vérifier les stocks dans la colonne F de l'onglet "articles", puis, si la quantité saisie est disponible, inscrire une nouvelle ligne correspondant à l'article, avec sa quantité, son montant.
Le problème est que le programme vérifie bien si la saisie est bien numérique, mais il ne fait rien d'autre. Il ne vérifie pas les stocks, et n'écrit rien dans l'onglet "facturation".
Mon code est le suivant :
Où ai-je fait une erreur ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Private Sub ajouter_Click() Dim ligne As Integer: ligne = 2 Dim lignef As Integer: ligne = 6 If (Liste_ref.SelText <> "") Then If (IsNumeric(quantite.Value) = False) Then MsgBox ("La quantité saisie n'est pas un nombre, veuillez corriger !") Exit Sub Else While (ThisWorkbook.Worksheets("articles").Cells(ligne, 3).Value <> "") If (ThisWorkbook.Worksheets("articles").Cells(ligne, 3).Value = Liste_ref.SelText) Then If (Int(quantite.Value) > Int(ThisWorkbook.Worksheets("articles").Cells(ligne, 6).Value)) Then MsgBox ("La quantité en stock pour cette référence n'est que de " & ThisWorkbook.Worksheets("articles").Cells(ligne, 6).Value) Exit Sub Else While (ThisWorkbook.Worksheets("facturation").Cells(lignef, 3).Value <> "") lignef = lignef + 1 Wend ThisWorkbook.Worksheets("facturation").Cells(lignef, 3).Value = Liste_ref.SelText ThisWorkbook.Worksheets("facturation").Cells(lignef, 5).Value = quantite.Value End If End If ligne = ligne + 1 Wend End If End If End Sub
Merci de votre aide,
A bientôt !