Aide sur Une Application de facturation sous VBA/Excel
eliyakamalebo
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
j'effectue une application de facturation sous VBA/Excel et toutes les autres conditions passent lorsque la facture n'est pas valable c'est à dire lorsque le Stock est soit zero ou lorsque la quantité demandée n'est pas disponible en stock. mais le seul probleme est que quand je veux valider la facture, si la quantité demandée est disponible en stock ça ne passe pas. ça dit "Erreur 424, Objet Requis"
Voici ci_bas mon code...
Votre aide me sera neccessaire....
Sub verification_facture()
Dim cellule As Range: Dim test As Boolean
test = False
For Each cellule In Range("D6:D26")
If (cellule.Value = "Rupture de Stock") Then
test = True
Exit For
End If
Next cellule
If (test = True) Then
MsgBox ("Des articles hors stock figurent dans la facture, il n'est pas possible de continuer")
Exit Sub
End If
Dim ligne As Integer: ligne = 2
Dim valeur_stock As Integer: valeur_stock = 0
Dim valeur_demandée As Integer: valeur_demandée = 0
Dim ref_cat As String: Dim ref_facture As String
Dim choix_utilisateur As Byte
While (Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 5).Value <> "")
valeur_stock = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 5).Value
ref_cat = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 3).Value
For Each cellule In ThisWorkbook.Worksheets("facturation").Range("C6:C26")
If (cellule.Value = ref_cat) Then
valeur_demandée = ThisWorkbook.Worksheets("facturation").Cells(cellule.Row, 5)
If (valeur_demandée > valeur_stock) Then
MsgBox ("La référence..." & cellule.Value & "...ne possède pas assez de Stock")
test = True
End If
End If
Next cellule
ligne = ligne + 1
Wend
If (test = True) Then
Exit Sub
Else
choix_utilisateur = MsgBox("La facture semble correcte,souhaitez-vous l'imprimer et mettre à jour les stock??", vbYesNo)
If (choix_utilisateur = 6) Then
For Each cellule In ThisWorkbook.Worksheets("facturation").Range("C6:C26")
ligne = 2
While (Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 5).Value <> "")
If (cellule.Value = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 3).Value) Then
Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 5).Value = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 5).Value - Thisworkbooks.Worksheets("facturation").Cells(cellule.Row, 5).Value
End If
ligne = ligne + 1
Wend
Next cellule
Else
Exit Sub
End If
End If
ThisWorkbook.Worksheets("facturation").PrintPreview
End Sub
j'effectue une application de facturation sous VBA/Excel et toutes les autres conditions passent lorsque la facture n'est pas valable c'est à dire lorsque le Stock est soit zero ou lorsque la quantité demandée n'est pas disponible en stock. mais le seul probleme est que quand je veux valider la facture, si la quantité demandée est disponible en stock ça ne passe pas. ça dit "Erreur 424, Objet Requis"
Voici ci_bas mon code...
Votre aide me sera neccessaire....
Sub verification_facture()
Dim cellule As Range: Dim test As Boolean
test = False
For Each cellule In Range("D6:D26")
If (cellule.Value = "Rupture de Stock") Then
test = True
Exit For
End If
Next cellule
If (test = True) Then
MsgBox ("Des articles hors stock figurent dans la facture, il n'est pas possible de continuer")
Exit Sub
End If
Dim ligne As Integer: ligne = 2
Dim valeur_stock As Integer: valeur_stock = 0
Dim valeur_demandée As Integer: valeur_demandée = 0
Dim ref_cat As String: Dim ref_facture As String
Dim choix_utilisateur As Byte
While (Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 5).Value <> "")
valeur_stock = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 5).Value
ref_cat = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 3).Value
For Each cellule In ThisWorkbook.Worksheets("facturation").Range("C6:C26")
If (cellule.Value = ref_cat) Then
valeur_demandée = ThisWorkbook.Worksheets("facturation").Cells(cellule.Row, 5)
If (valeur_demandée > valeur_stock) Then
MsgBox ("La référence..." & cellule.Value & "...ne possède pas assez de Stock")
test = True
End If
End If
Next cellule
ligne = ligne + 1
Wend
If (test = True) Then
Exit Sub
Else
choix_utilisateur = MsgBox("La facture semble correcte,souhaitez-vous l'imprimer et mettre à jour les stock??", vbYesNo)
If (choix_utilisateur = 6) Then
For Each cellule In ThisWorkbook.Worksheets("facturation").Range("C6:C26")
ligne = 2
While (Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 5).Value <> "")
If (cellule.Value = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 3).Value) Then
Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 5).Value = Workbooks("catalogue.xlsx").Worksheets("Feuil1").Cells(ligne, 5).Value - Thisworkbooks.Worksheets("facturation").Cells(cellule.Row, 5).Value
End If
ligne = ligne + 1
Wend
Next cellule
Else
Exit Sub
End If
End If
ThisWorkbook.Worksheets("facturation").PrintPreview
End Sub
A voir également:
- Aide sur Une Application de facturation sous VBA/Excel
- Liste déroulante excel - Guide
- Application word et excel gratuit - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Desinstaller une application sur windows - Guide
- Déplacer une colonne excel - Guide
3 réponses
Bonjour,
Avec votre ou vos fichiers (d'apres votre programmation, il pourrait y avoir deux fichiers, mais .....) a dispo cela serait unpeut plus facile de vous aider
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Avec votre ou vos fichiers (d'apres votre programmation, il pourrait y avoir deux fichiers, mais .....) a dispo cela serait unpeut plus facile de vous aider
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Bonjour eliyakamalebo,
Je te retourne ton code VBA (très légèrement modifié) :
Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.
Cordialement. :)
Je te retourne ton code VBA (très légèrement modifié) :
Option Explicit Sub verification_facture() Dim lig1 As Byte: Application.ScreenUpdating = False For lig1 = 6 To 26 If Cells(lig1, 4) = "Rupture de Stock" Then MsgBox "Des articles hors stock figurent dans la facture, " _ & "il n'est pas possible de continuer": Exit Sub End If Next lig1 Dim valeur_stock As Integer, valeur_demandée As Integer Dim choix_utilisateur As Byte, test As Boolean Dim ref_cat As String, lig2 As Long: lig2 = 2 With Workbooks("catalogue.xlsx").Worksheets("Feuil1") Do valeur_stock = .Cells(lig2, 5): If valeur_stock = "" Then Exit Do ref_cat = .Cells(lig2, 3) With ThisWorkbook.Worksheets("facturation") For lig1 = 6 To 26 If .Cells(lig1, 3) = ref_cat Then valeur_demandée = .Cells(lig1, 5) If valeur_demandée > valeur_stock Then MsgBox "La référence..." & ref_cat _ & "...ne possède pas assez de Stock": test = True End If End If Next lig1 End With lig2 = lig2 + 1 Loop If test Then Exit Sub choix_utilisateur = MsgBox("La facture semble correcte, " _ & "souhaitez-vous l'imprimer et mettre à jour les stocks ?", 4) If choix_utilisateur <> 6 Then Exit Sub Dim cellX As Range, dv As Byte Set cellX = ThisWorkbook.Worksheets("facturation").[C6] For dv = 0 To 20 lig2 = 2 While .Cells(lig2, 5) <> "" If cellX.Offset(dv) = .Cells(lig2, 3) Then .Cells(lig2, 5) = .Cells(lig2, 5) - cellX.Offset(dv, 2) End If lig2 = lig2 + 1 Wend Next dv End With ThisWorkbook.Worksheets("facturation").PrintPreview End Sub
Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.
Cordialement. :)