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é :
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
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
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part j=b
Quelqu'un a-t-il une idée du pourquoi ?
Merci d'avance,
Florent Lucas
Partager