VBA v6.5
Bonjour à tous,
J'ai un fichier récapitulatif des deals en cours qui est alimenté avec les nouveaux deals manuellement (car retraitement de données, onglet "deals 2015") et je reçois régulièrement une nouvelle extract Excel avec les nouveaux deals (onglets "new deals" que j'importe dans mon fichier). Entre deux mises à jour de mon onglet "deals 2015" à partir de la nouvelle extract, il peut arriver qu'un deal sorte et qu'un autre rentre sur une période antérieure (les deals sont affichés et classés par date). Il faut donc que j'applique ces changements sur mon onglet "deals 2015").
Mon objectif final est de faire matcher les deux onglets sur toutes les périodes : mon onglet alimenté manuellement vs celui que je reçois de ma source. Le risque opérationnel existe et je souhaite le réduire autant que possible.
Pour cela, j'ai une macro qui va me matcher les deals codes présents sur les périodes antérieures par mois ou trimestre sur les deux onglets (m'indiquant que le deal est toujours présent) en coloriant les cellules (des deux onglets) de manière à isoler les deals qui sortent, qui rentrent ou dont le montant varie entre deux majs.
Pour le moment la macro colorie bien les deals présents dans les deux onglets mais je bloque quand il s'agit de vérifier si le montant ne change pas pour ces deals.
Je souhaite que pour chaque deal déjà présent dans les deux onglets, excel vérifie que le montant reste inchangé (sur les deux onglets) et que si modification de montant il y a, il colorie la cellule du montant en rouge flashy.
NB :
Colonne E = deal code
Colonne J = montants
Le code ne fonctionne pas à partir de la ligne 31.
Je ne sais pas trop dans quel sens aller. Merci d'avance pour votre aide!
Cordialement
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
45
46 Sub New_prod_MFC() 'on désire comparer deux feuilles d'un même classeur Dim Ret As Integer Dim Msg As String Dim MsgTitle As String Msg = "Avez-vous séléctionné les mêmes périodes ?" MsgTitle = "Contrôle" Ret = MsgBox(Msg, vbYesNo, MsgTitle) If Ret = vbNo Then Exit Sub Else 'on définit la couleur pour MFC coul = 8 coul2 = 3 'pour chaque cellule de la colonne E de l'onglet "deals 2015" For n = 2 To ActiveWorkbook.Sheets("deals 2015").Range("E65536").End(xlUp).Row 'pour chaque ligne de la colonne E de l'onglet source For m = 2 To ActiveWorkbook.Sheets("new deals").Range("E65536").End(xlUp).Row If InStr(ActiveWorkbook.Sheets("new deals").Range("E" & m), ActiveWorkbook.Sheets("deals 2015").Range("E" & n)) <> 0 Then ActiveWorkbook.Sheets("deals 2015").Range("E" & n).Interior.ColorIndex = coul ActiveWorkbook.Sheets("new deals").Range("E" & m).Interior.ColorIndex = coul End If Next m Next n For Each Cell In Worksheets("deals2015").Range("E:E") If Worksheets("deals2015").Range("E" & n).Interior.ColorIndex = coul Then 'pour chaque cellule de la colonne E de l'onglet "deals 2015" For n2 = 2 To ActiveWorkbook.Sheets("deals 2015").Range("J65536").End(xlUp).Row 'pour chaque ligne de la colonne E de l'onglet source For m2 = 2 To ActiveWorkbook.Sheets("new deals").Range("J65536").End(xlUp).Row If ActiveWorkbook.Sheets("new deals").Range("J" & m2).Value <> ActiveWorkbook.Sheets("deals 2015").Range("J" & n2).Value Then ActiveWorkbook.Sheets("new deals").Range("J" & m2).Interior.ColorIndex = coul2 End If End If Next m2 Next n2 End Sub
Nevpen
Partager