Bonjour,

Je poste sur ce forum car j'ai un problème pour finaliser une macro. Je vous explique le problème

J'ai une liste de commande fournisseur, je souhaiterais à travers une macro vba récupérer les numéro de commande et les montants associés et les copié dans un onglet à la ligne correspondante. Il y a souvent plusieurs commande pour un même fournisseur. dans ce cas je voudrais qu'il copie la commande et le montant dans les colonnes d'après (colonne 18+3 pour les numéros de commandes et 20+3 sur les montant associés.

J'ai un problème avec la gestion de mes boucles qui fait que finalement il ne copie rien dans les colonnes suivantes si il y a des commandes qui correspondent au même fournisseur.

Je vous joins la partie du code qui ne fonctionne pas.

Je vous remercie d'avance et vous promets d'être assidu sur ce forum pour vous aider si les membres en ont besoin.

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
Sheets("TCD").Select
 
For i = 3 To nombre_lignes
Sheets("TCD").Select
 
Application.StatusBar = " Traitement de l'opération " & i & "/" & nombre_lignes
 
Numero_CE = Cells(i, 16).Value
Numero_CDE = Cells(i, 17).Value
Fournisseur = Cells(i, 18).Value
Montant_CDE = Cells(i, 19).Value
 
Sheets("base de donnée").Select
nombre_lignes_BDD = Range("A65536").End(xlUp).Row
 
For j = 2 To nombre_lignes_BDD
 
If Cells(j, 3).Value = Numero_CE And Cells(j, 6).Value = Fournisseur Then
 
k = 18
l = 20
 
Do
k = k + 3
If IsEmpty(Cells(j, k)) Then
Cells(j, k).Value = Numero_CDE
End If
Loop While IsEmpty(Cells(j, k))
 
Do
l = l + 3
If IsEmpty(Cells(j, l)) Then
Cells(j, l).Value = Montant_CDE
End If
Loop While IsEmpty(Cells(j, l))
 
End If
Next j
 
Next i
 
End Sub