Problème avec la boucle For ....next i
Résolu
Bonjour à tous j'ai un petit souci avec mon boucle For
Quand j'exécute le code au lieu de parcourir la plage définie ,il prend directement la derline.
Voici mon code
Merci pour votre aide
Quand j'exécute le code au lieu de parcourir la plage définie ,il prend directement la derline.
Voici mon code
Private Sub ENREGISTREMENT_Click()
Dim MAP As String
If Dat_Acht.Value = "" Then
MsgBox ("Veuillez ajoutez un produit")
Exit Sub
End If
If Date_paiemt.Value = "" Then
Date_paiemt.Value = Date
End If
If Sheets("CLIENT").Cells(i + 1, 3) = "" Then
Sheets("CLIENT").Cells(i + 1, 3) = 0
End If
If Mt_Glb_Prdt.Value = "" Then
Mt_Glb_Prdt.Value = 0
End If
If 10000 <= Mt_Glb_Prdt.Value And Mt_Glb_Prdt.Value <= 50000 Then
Mt_net.Value = 0.95 * Mt_Glb_Prdt.Value
ElseIf Mt_Glb_Prdt > 50000 Then
Mt_net.Value = 0.9 * Mt_Glb_Prdt.Value
Else
Mt_net.Value = Mt_Glb_Prdt.Value
End If
If Mt_Glb_Prdt > 50000 Then
remise.Value = 0.1 * Mt_Glb_Prdt.Value
ElseIf 10000 <= Mt_Glb_Prdt.Value And Mt_Glb_Prdt.Value <= 50000 Then
remise.Value = 0.05 * Mt_Glb_Prdt.Value
Else
remise.Value = 0
End If
Sheets("VENTE").Cells(2, 12) = remise.Value
Sheets("VENTE").Cells(2, 13) = Mt_net.Value
If Nom_Clt.Visible = True Then
For i = 1 To Derline(1, 1)
If (Nom_Clt.Value = Sheets("CLIENT").Cells(i + 1, 1)) Then
Sheets("CLIENT").Cells(i + 1, 3) = Sheets("CLIENT").Cells(i + 1, 3) + Mt_net.Value
Sheets("CLIENT").Cells(i + 1, 5) = Date_paiemt.Value
MAP = InputBox("combien le client pense payé le " & (Date_paiemt.Value) & "?")
Sheets("CLIENT").Cells(i + 1, 6) = MAP
Range("G2").Select
ActiveCell.FormulaR1C1 = "=RC[-4]-RC[-1]"
Nom_Clt.Value = ""
Télphon_Clt.Value = ""
Date_paiemt.Value = ""
Exit Sub
End If
Sheets("CLIENT").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("CLIENT").Cells(i + 1, 1) = Nom_Clt.Value
Sheets("CLIENT").Cells(i + 1, 2) = Télphon_Clt.Value
Sheets("CLIENT").Cells(i + 1, 3) = Mt_net.Value
Sheets("CLIENT").Cells(i + 1, 4) = Dat_Acht.Value
Sheets("CLIENT").Cells(i + 1, 5) = Date_paiemt.Value
MAP = InputBox("combien le client pense payé le " & Date_paiemt.Value & "?")
Sheets("CLIENT").Cells(i + 1, 6) = MAP
Range("G2").Select
ActiveCell.FormulaR1C1 = "=RC[-4]-RC[-1]"
Nom_Clt.Value = ""
Télphon_Clt.Value = ""
Date_paiemt.Value = ""
Exit Sub
Next i
End If
End Sub
Merci pour votre aide
2 réponses
-
Contributeurbonjour, ta boucle ne sera jamais exécutée plusieurs fois, à cause du
Exit Sub
en ligne 67. est-ce ce que tu souhaites?-
-
Contributeur@zenastytoston code ne parcourt pas la plage définie, il s’arrête après la première ligne, à cause du Exit Sub en ligne 67.
-
-
-
Bonjour,
Derline n'est ni déclarée ni définie nulle part dans ton code. Regarde ce que vaut Derline(1, 1) (un tableau ???) au moment de l'exécution du code et tu auras sans doute la réponse...
À moins que ce ne soit une variable publique mais il faudrait savoir où tu la déclares et quand/comment elle est définie...