Bonjour,
je rencontre un problème dans mon code et je ne sais pas d'où vient l'erreur. J'ai un code VBA qui me permet de calculer la marge de mes produits. J'ai deux options :
- soit j'applique la même marge à tous mes produits quand je clique sur oui à la question : Voulez-vous appliquer la même marge pour toutes les lignes
- soit j'applique une marge différent à chaque ligne quand je clique sur non à la question : Voulez-vous appliquer la même marge pour toutes les lignes
mon code ce base sur la colonne 11 (la colonne quantité) et la ligne 32. Si dans la colonne quantité il y a un chiffre mon code est actif.
Mon problème est le suivant : j'essaye de mettre ce message "Merci de saisir une valeur" quand je réponds non à la question : Voulez-vous appliquer la même marge pour toutes les lignes et que je rentre aucune valeur avant de faire valider. Actuellement avec mon code, le message "Merci de saisir une valeur" apparait même si je rentre une valeur différente de 0 or j'aimerais que quand je rentre une valeur différente de 0, il me calcul ma marge.
ci-dessous mes 2 codes : une pour mon Userform (Gestion devis) général et l'autre pour l'Userform (Marge) quand je réponds non à la question
Code UserForm (Gestion Devis)
Private Sub Marge_Click()
Dim Z_result As String
Dim Z_Marge As String
Dim Z_MargeOk As Double
Dim Z_Lig As Integer
Z_Lig = 32
Z_result = MsgBox("Voulez-vous appliquer la même marge pour toutes les lignes", vbYesNo)
If Z_result = vbYes Then
Z_Marge = InputBox("Marge :", "Gestion Marge")
If Z_Marge = "" Then
MsgBox ("Merci de saisir une quantitée et un taux de marge")
Else
Z_MargeOk = (Replace(Z_Marge, "%", "") * 1) / 100
Z_MargeOk = 1 - Z_MargeOk
End If
Do While Cells(Z_Lig, 11).Value <> "" And Z_MargeOk <> 0
If Cells(Z_Lig, 14).Value = "" Or Cells(Z_Lig, 14).Value = 0 Then
Cells(Z_Lig, 14).Value = Cells(Z_Lig, 10).Value
End If
Cells(Z_Lig, 10).Value = Cells(Z_Lig, 14).Value / Z_MargeOk
Z_Lig = Z_Lig + 1
Loop
Else:
Do While Cells(Z_Lig, 11).Value <> ""
ZG_Lig = Z_Lig
F_Marge.FC_Lig = ZG_Lig
continue = True
F_Marge.Show 0
Do While continue = True
DoEvents
Loop
If sortie = True Then
sortie = False
Exit Sub
End If
Z_Lig = Z_Lig + 1
Loop
End If
End Sub
Code UserForm (Marge)
Private Sub Fermer_Click()
sortie = True
continue = False
Unload F_Marge
End Sub
Private Sub FB_OK_Click()
Dim Z_MargeOk As String
If Z_MargeOk = "" Then
MsgBox ("Merci de saisir une valeur")
Else
Z_MargeOk = (Replace(FC_Marge, "%", "") * 1) / 100
Z_MargeOk = 1 - Z_MargeOk
End If
If Cells(FC_Lig, 14).Value = "" Then
Cells(FC_Lig, 14).Value = Cells(FC_Lig, 10).Value
End If
If Z_MargeOk <> "" Then
Cells(FC_Lig, 10).Value = Cells(FC_Lig, 14).Value / Z_MargeOk
End If
continue = False
Unload F_Marge
End Sub
Je remercie par avance toutes les personnes qui vont m'apporter leurs aides :)
Goat