Bonjour à tous,
Je rencontre un problème de modification dans une base de données nommée TbProduit
Je m'explique quand je lance mon Userform par le menu et que je veux modifier cet article:
E COMMERCE PART - D17 TERRE
Lorsque je clique sur le bouton modifier , cela modifie bien ma base nommée BDProduit (onglet Produit), mais il ajoute une ligne dan s la base TbProduit (onglet Données)plutôt que modifier la ligne existante et cela ne le fait pas avec tous les produits, je ne comprends pas pourquoi, voilà le code du bouton modifier :
Private Sub BtModifBaseProd_Click()
Call Unprotect
Call afficher
Application.ScreenUpdating = False
Dim R, X, V, I&, reponse
If PrixVente = "" Then MsgBox "Renseignez le prix de vente avant !!!": Exit Sub
If CDbl(PrixVente) < CDbl(CoutRevient) Then MsgBox "prix de vente incohérent avec le cout de revient " & vbCrLf & "veuillez corriger SVP": Exit Sub
reponse = MsgBox(" Confirmer la Modification de ce Produit", vbYesNo + vbCritical)
If reponse = vbYes Then
V = Array(NomPlante, CodeArticle, CdtPlante, PrixAchatPlante, CoeffPlante, "", "", DiamPot, CoeffPot, "", "", RefPlaque, CoeffPlaque, _
"", "", "", TxtCoutHrMO, TxtTempsMO, "", RefChromo, "", "", RefEntourage, "", "", RefEtiquette, "", "", RefCdt, "", QteSoie, "", QteCordelette, _
"", QteEtiCar, "", CoeffCdt, "", RefEmballage, Qte1, "", RefEmballage2, Qte2, "", RefEmballage3, Qte3, "", "", TxtRefAccessoire, _
TxtDetPrixAccess, TxtPrixAccessoire, TxtCoeffAccess, "", PoidsPlante, "", NomTransVente, "", CbTransporteur, PrixVente, "", _
Abs(ObNonRempotee), Abs(ObRempotee), Abs(ChbCoeffPot), Abs(ChbCoeffPlaque), Abs(ChbCoeffCdt), Abs(ChbCoeffAccess), Abs(ChbCoeffPlante))
For I = 0 To UBound(V)
If IsNumeric(V(I)) Then V(I) = CDbl(V(I))
Next
With [BDProduit].ListObject
.ListRows(CbRechercheProduit.ListIndex + 1).Range.Value = V
End With
With Range("TbProduit").ListObject
.ListRows(CbRechercheProduit.ListIndex + 1).Range.Resize(, 4) = Array(NomPlante, CodeArticle, CDbl(PrixVente), Val(CdtPlante))
End With
triorder
TriOrder2
rempliLesLISTE
ModifS = ModifS + 1
Else
With CbRechercheProduit: I = .ListIndex: .ListIndex = -1: .ListIndex = I: End With 'on remet le produit a l'initial
End If
auriez-vous une idée géniale.
Merci beaucoup pour votre aide
Eric
Je rencontre un problème de modification dans une base de données nommée TbProduit
Je m'explique quand je lance mon Userform par le menu et que je veux modifier cet article:
E COMMERCE PART - D17 TERRE
Lorsque je clique sur le bouton modifier , cela modifie bien ma base nommée BDProduit (onglet Produit), mais il ajoute une ligne dan s la base TbProduit (onglet Données)plutôt que modifier la ligne existante et cela ne le fait pas avec tous les produits, je ne comprends pas pourquoi, voilà le code du bouton modifier :
Private Sub BtModifBaseProd_Click()
Call Unprotect
Call afficher
Application.ScreenUpdating = False
Dim R, X, V, I&, reponse
If PrixVente = "" Then MsgBox "Renseignez le prix de vente avant !!!": Exit Sub
If CDbl(PrixVente) < CDbl(CoutRevient) Then MsgBox "prix de vente incohérent avec le cout de revient " & vbCrLf & "veuillez corriger SVP": Exit Sub
reponse = MsgBox(" Confirmer la Modification de ce Produit", vbYesNo + vbCritical)
If reponse = vbYes Then
V = Array(NomPlante, CodeArticle, CdtPlante, PrixAchatPlante, CoeffPlante, "", "", DiamPot, CoeffPot, "", "", RefPlaque, CoeffPlaque, _
"", "", "", TxtCoutHrMO, TxtTempsMO, "", RefChromo, "", "", RefEntourage, "", "", RefEtiquette, "", "", RefCdt, "", QteSoie, "", QteCordelette, _
"", QteEtiCar, "", CoeffCdt, "", RefEmballage, Qte1, "", RefEmballage2, Qte2, "", RefEmballage3, Qte3, "", "", TxtRefAccessoire, _
TxtDetPrixAccess, TxtPrixAccessoire, TxtCoeffAccess, "", PoidsPlante, "", NomTransVente, "", CbTransporteur, PrixVente, "", _
Abs(ObNonRempotee), Abs(ObRempotee), Abs(ChbCoeffPot), Abs(ChbCoeffPlaque), Abs(ChbCoeffCdt), Abs(ChbCoeffAccess), Abs(ChbCoeffPlante))
For I = 0 To UBound(V)
If IsNumeric(V(I)) Then V(I) = CDbl(V(I))
Next
With [BDProduit].ListObject
.ListRows(CbRechercheProduit.ListIndex + 1).Range.Value = V
End With
With Range("TbProduit").ListObject
.ListRows(CbRechercheProduit.ListIndex + 1).Range.Resize(, 4) = Array(NomPlante, CodeArticle, CDbl(PrixVente), Val(CdtPlante))
End With
triorder
TriOrder2
rempliLesLISTE
ModifS = ModifS + 1
Else
With CbRechercheProduit: I = .ListIndex: .ListIndex = -1: .ListIndex = I: End With 'on remet le produit a l'initial
End If
auriez-vous une idée géniale.
Merci beaucoup pour votre aide
Eric