Bonjour à tous le forum. J'espère que vous allez tous bien. Je suis nouveau dans le forum by the way.
Je dois développer une macro dans le cadre du développement des outils de mon entreprise. Il s'agit du suivi des créances clients. L'outil doit permettre de mettre à jour les soldes des comptes clients, tout en gardant les montants historiques des quatre derniers jours. Bon assez d'explications, mon problème est le suivant:
- le classeur Excel contient deux feuilles intitulées respectivement "Comptes clients " et "Comptes histo". Les deux feuilles ont la même structure: ils contiennent des tableaux avec des colonnes intitulées *numéro du compte (col. E), *intitulé du compte, 4 colonnes *montants (col. K à O) avec les dates corresp. sur les entêtes . On doit être capable de mettre à jour les soldes dans "Comptes clients" et reprendre les soldes anciens correspondant dans les colonne K à N de "Comptes histo" et les coller dans la feuille "Comptes clients" à côté des soldes à jour. Pour cette dernière tâche j'ai trouvé le code ci-dessous sur internet, qui utilise la recherchev.
Cependant, l'exécution est diablement lente (30 minutes minimum, plus qu'il ne prend pour le traitement manuel
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 Sub prendredonnées() Dim plage As Range, plrech As Range, C As Range, Teste With Sheets("Comptes Clients") Set plage = .Range(.Cells(15, 5), .Cells(.Rows.Count, 5).End(xlUp)) End With With Sheets("Comptes histo") Set plrech = .Range(.Cells(15, 5), .Cells(.Rows.Count, 15).End(xlUp)) End With For Each C In plage Teste = Application.VLookup(C.Value, plrech, 6, False) If Not IsError(Teste) Then C.Offset(, 7).Value = Teste Else C.Offset(, 7).Value = "0" End If Next C End SubA noter que la taille des comptes est volumineux (près de 65 000 lignes).
Si vous pouviez me suggérer une autre façon de faire, ça serait vraiment libérateur.
Merci d'avance.
Partager