Bonjour,

Je vais prendre le temps de lire des cours et tutoriaux sur VBA d'ici peu, quand j'aurai un peu plus de temps. Malheuresement ce n'est pas trop le cas et j'aimerai avoir votre aide sur une question quant à la syntaxe / disposition du code et son effet sur la bonne exécution de la macro. Je m'explique avec un exemple concert. J'ai des comptes avec leur montant en face, et je dois dans une colonne indiquer si il s'agit d'un compte débiteur ou créditeur. J'ai donc fait un For... Next avec un If. Ci-dessous, le code qui me donne le résultat voulu :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Dim BSE As Integer, AccType As Range
    BSE = .Cells(PNLS, 1).Offset(-1, 0).Row
    For Each AccType In Range("E2:E" & BSE)
    If AccType.Value < 0 Then AccType.Offset(0, -2).Value = "C" Else AccType.Offset(0, -2).Value = "D"
    Next AccType
J'ai eu de la chance de tester ça et que ça marche car hier soir en partant je n'avais pas trouvé pourquoi ça ne fonctionnait pas, voilà ce que j'avais écrit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
    Dim BSE As Integer, AccType As Range
    BSE = .Cells(PNLS, 1).Offset(-1, 0).Row
    For Each AccType In Range("E2:E" & BSE)
    If AccType.Value < 0 Then AccType.Offset(0, -2).Value = "C" Else
    AccType.Offset(0, -2).Value = "D"
    Next AccType
Résultat, j'ai eu des "D" sur toutes les lignes, quel que soit le montant.

Pouvez-vous SVP m'expliquer pourquoi en fonction du fait de sauter une ligne ou pas ça change le résultat de l'exécution de la boucle ?

Cordialement,

Runsh