Problème avec la boucle For ....next i

Résolu/Fermé
zenastytos Messages postés 16 Date d'inscription samedi 20 décembre 2014 Statut Membre Dernière intervention 26 mai 2017 - 26 mai 2017 à 08:58
zenastytos Messages postés 16 Date d'inscription samedi 20 décembre 2014 Statut Membre Dernière intervention 26 mai 2017 - 26 mai 2017 à 11:07
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

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
26 mai 2017 à 09:36
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
zenastytos Messages postés 16 Date d'inscription samedi 20 décembre 2014 Statut Membre Dernière intervention 26 mai 2017
26 mai 2017 à 10:10
oui oui je l'ai déclaré dans un autre module en tant que publique
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
26 mai 2017 à 10:51
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
zenastytos Messages postés 16 Date d'inscription samedi 20 décembre 2014 Statut Membre Dernière intervention 26 mai 2017
26 mai 2017 à 10:56
oui c'est ce que je veux qu'il s’arrête s'il exécute une fois
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > zenastytos Messages postés 16 Date d'inscription samedi 20 décembre 2014 Statut Membre Dernière intervention 26 mai 2017
26 mai 2017 à 11:00
ton 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
zenastytos Messages postés 16 Date d'inscription samedi 20 décembre 2014 Statut Membre Dernière intervention 26 mai 2017
26 mai 2017 à 11:07
ok merci je vois
0