Aide sur Une Application de facturation sous VBA/Excel
eliyakamalebo
Messages postés
1
Statut
Membre
-
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
- Application word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Desinstaller une application sur windows - Guide
- Comment supprimer une application préinstallée sur android - 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. :)
