Boucle interminable

Bonjour,

Je suis vraiment débutant en VBA. J'essaye de créer un programme mais une partie me cause vraiment beaucoup de problème. J'ai testé les fonctions une par une et il n'y a pas de soucis par contre quand je fais des appels dans une boucle la variable i reste identique une fois passé la ligne 8 du code. Par contre la première condition (ligne 7) marche très bien sans la ligne (8).

J'éspère que j'ai été assez clair dans mes explications Je serai vraiment très reconaissant si vous pouvez me débloquer sur ce sujet. Voici ce que j'ai fait :

1 Sub sari()
2 Sheets(1).Select
3 Dim i As Long
4 counter = ActiveSheet().UsedRange.Rows.Count
5 i = 1
6 Do While i <= counter
7   If Cells(i, 1).Interior.Color = 65535 Then
8        If var_mi(numClient(i)) = False Then
9        copier (i)
10        MsgBox "Buradayim"
11        End If
12    End If
13    i = i + 1
14 Loop

15 End Sub

16 Function numClient(satir As Long) As Long
17'Renvoi le numero de client
18 Sheets(1).Select
19 While (Cells(satir, 1) = "")
20      satir = satir - 1
21 Wend
22 numClient = Cells(satir, 1).Value
23 End Function

24 Function var_mi(musNo As Long) As Boolean
25'Renvoi true si c'est déja incrementé dans la feuille Summary
26 Sheets("Summary").Select

27 Dim k As Long
28 k = 1
29 While (Cells(k, 1) <> "" Or Cells(k, 2) <> "" Or Cells(k, 3) <> "" Or Cells(k + 1, 1) <> "" Or Cells(k + 1, 2) <> "" Or Cells(k + 1, 3) <> "")
30      k = k + 1
31 Wend

32 For l = 1 To k

33   If Cells(l, 1).Value = musNo Then
34       var_mi = True
35       Sheets(1).Select
36        Exit Function
37    End If

38 Next
39 Sheets(1).Select

40 End Function

41 Sub copier(z As Long)

42 For m = 1 To ActiveSheet().UsedRange.Rows.Count

43           If Cells(m, 1).Value = numClient(z) Then

44                Dim j As Integer
45                 j = m
46                 While (Cells(j, 1) <> "" Or Cells(j, 2) <> "" Or Cells(j, 3) <> "")
47                     j = j + 1
48                 Wend

49                 Range(Cells(m, 1), Cells(j, 17)).Select
50                 Application.CutCopyMode = False
51                 Selection.Copy
52                 Sheets("Summary").Select
53                 Dim k As Integer
54                 k = 1
55                 While (Cells(k, 1) <> "" Or Cells(k, 2) <> "" Or Cells(k, 3) <> "" Or Cells(k + 1, 1) <> "" Or Cells(k + 1, 2) <> "" Or Cells(k + 56 1, 3) <> "")
57                     k = k + 1
58                 Wend
59                 Cells(k + 1, 1).Select
60                 ActiveSheet.Paste
61                 Sheets(1).Select
62                 Exit For
63            End If
64            Next

65 End Sub

Salut Elyious,

Prends de suite la bonne habitude de joindre un fichier (nettoyé de ses données confidentielles) avec des explications claires et complètes quant au déroulé de ton code et, éventuellement, une feuille détaillant le résultat espéré.


A+

Rechercher des sujets similaires à "boucle interminable"