Bonjour tout le monde,

Je suis en train de rédiger un petit script tout bête mais je suis confronté à un problème nouveau pour moi :

J'ai une colonne A possédant des nombres (code de postes) rangés dans l'ordre croissant mais qui ne se suivent pas forcément et qui peuvent être en double voire triple (ex. : 7, 9, 15, 15, 18, 19, 20, 20, 20, 35, 39, ...). Les nombres de la colonne A sont appareillés avec les nombres de la colonne B (barème pour chaque poste en l’occurrence) situés sur les mêmes lignes.

Je veux obtenir deux nouvelles colonnes (D et E) qu reprendraient toutes ces paires de nombres mais qui intercaleraient les codes postes manquants (nombres de la colonne A) pour obtenir une liste de 1 à 6000 dans la colonne D et le premier barème correspondant à chaque code poste lorsqu'il existe dans la colonne E...

Voici le code rédigé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
Sub ajoutManquant()
 
    Dim CodePoste As Integer
    Dim NumLigneCode As Integer
    Dim j As Integer
    Dim b As Integer
 
    CodePoste = 1
    NumLigneCode = 2
    j = 2
    b = 0
 
lign0:
 
        If Cells(j, 1) = CodePoste Then
            'Debug.Print "OK"
            Cells(NumLigneCode, 4) = Cells(j, 1)
            Cells(NumLigneCode, 5) = Cells(j, 2)
            b = j + 1
        Else
            Cells(NumLigneCode, 4) = CodePoste
            Cells(NumLigneCode, 5) = ""
        End If
 
        If Cells(j, 1) = Cells(j + 1, 1) Then
            b = j + 2
        End If
 
        If Cells(j, 1) = Cells(j + 2, 1) Then
            b = j + 3
        End If
 
        NumLigneCode = NumLigneCode + 1
        CodePoste = CodePoste + 1
        j = b
 
        'Debug.Print "Cell=" & Cells(j, 1) & " / Code=" & CodePoste & " / NumLign=" & NumLigneCode & " / j=" & j
 
        If CodePoste = 6000 Then Exit Sub
 
        GoTo lign0
 
End Sub
Là où ça devient étrange, c'est que VBA m'indique une erreur 1004 "définie par l'application ou par l'objet" et que cette erreur semble venir de la ligne
puisque lorsque je supprime cette ligne, il n'y a plus d'erreur. Si je remplace j=b par j=1 ou j=NumLigneCode (ce qui ne sert à rien mais c'est simplement pour essayer), il n'y a plus d'erreur.

Quelqu'un a-t-il une idée du pourquoi ?

Merci d'avance,

Florent Lucas