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
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

  1. Contributeur
    bonjour, ta boucle ne sera jamais exécutée plusieurs fois, à cause du
    Exit Sub
    en ligne 67. est-ce ce que tu souhaites?
    1
    1. oui c'est ce que je veux qu'il s’arrête s'il exécute une fois
      0
    2. 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.
      0
    3. ok merci je vois
      0
  2. 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...
    1
    1. oui oui je l'ai déclaré dans un autre module en tant que publique
      0