Comparaisons entre 2 classeurs avec déplacement de cellules
Bonjour à vous tous.
Cela fait 2 jours que je tourne en rond et surtout que je n'arrive pas au résultat souhaité de façon simple.
Je vous explique ce que je souhaite faire.
J'ai deux classeurs distincts:
Le classeur 1 qui centralise des données provenant du classeur 2. Le classeur 2 est utilisé par d'autres personnes et est voué à subir des modifications régulières.
J'ai fait mon code pour importer dans le classeur 1 les informations souhaitées. Ça, ça marche très bien.
Maintenant, je souhaiterais pouvoir faire une mise à jour des informations tout en exécutant d'autres action. Je vous donne le détail:
Si la cellule C27 du classeur1 est différente de la cellule C9 du classeur2 alors les cellules C31 et C32 du classeur1 se vide et passe en rouge.
Ensuite, je veux passer à la cellule D27 du classeur1 et la comparer à la cellule D9 du classeur2 et pour le coup modifier les cellules D31 et D32 du classeur1. Et ainsi de suite jusque la cellule Z27 du classeur1 et Z9 du classeur2. Une fois ceci fait, comparer de C34 à Z34 du classeur1 avec C13 à Z13 du classeur2 et modifications de cellules C38,C39 à Z38,Z39 du classeur1. Et ainsi de suite sur 20 lignes au total.
Je n'arrive pas à réaliser ceci de façon simple et étant débutant en VBA, n'est pas la compréhension du certaines fonctions.
Merci pour l'aide que vous pourrez m'apporter.
Bonjour
Sans les fichiers je ne vois pas ce qu'on peux faire...
Re-bonjour.
J'ai utilisé mon joker "Appel à un ami" et il en ressort ce code. Comme quoi, sans fichier il est possible de guider quelqu'un.
Sub VerifBOE()
Dim BOE As String, CHG As String, SHT As String
Dim A As Long
BOE = "Programme_hebdo_4_semaines.xlsx" 'Classeur2
CHG = "Projet FrontLine.xlsm" 'Classeur1
SHT = Range("A2")
For A = 3 To 26 'colonne C à Z
If Workbooks(CHG).Sheets(SHT).Cells(27, A) <> Workbooks(BOE).Sheets(SHT).Cells(9, A) Then
If Workbooks(CHG).Sheets(SHT).Cells(27, A).Interior.Color = RGB(255, 255, 255) Then
Workbooks(CHG).Sheets(SHT).Cells(31, A).Interior.ColorIndex = 6
Workbooks(CHG).Sheets(SHT).Cells(32, A).Interior.ColorIndex = 6
Workbooks(CHG).Sheets(SHT).Cells(31, A) = ""
Workbooks(CHG).Sheets(SHT).Cells(32, A) = ""
GoTo Suite27
End If
Workbooks(CHG).Sheets(SHT).Cells(31, A).Interior.ColorIndex = 3
Workbooks(CHG).Sheets(SHT).Cells(32, A).Interior.ColorIndex = 3
Workbooks(CHG).Sheets(SHT).Cells(31, A) = ""
Workbooks(CHG).Sheets(SHT).Cells(32, A) = ""
ElseIf Workbooks(CHG).Sheets(SHT).Cells(27, A).Interior.ColorIndex = Workbooks(CHG).Sheets(SHT).Cells(27, A - 1).Interior.ColorIndex And Workbooks(CHG).Sheets(SHT).Cells(31, A - 1).Interior.ColorIndex = 3 Then
Workbooks(CHG).Sheets(SHT).Cells(31, A).Interior.ColorIndex = 3
Workbooks(CHG).Sheets(SHT).Cells(32, A).Interior.ColorIndex = 3
Workbooks(CHG).Sheets(SHT).Cells(31, A) = ""
Workbooks(CHG).Sheets(SHT).Cells(32, A) = ""
ElseIf Workbooks(CHG).Sheets(SHT).Cells(27, A).Interior.ColorIndex = Workbooks(CHG).Sheets(SHT).Cells(27, A - 1).Interior.ColorIndex And Workbooks(CHG).Sheets(SHT).Cells(31, A - 1).Interior.ColorIndex = 6 Then
Workbooks(CHG).Sheets(SHT).Cells(31, A).Interior.ColorIndex = 6
Workbooks(CHG).Sheets(SHT).Cells(32, A).Interior.ColorIndex = 6
Workbooks(CHG).Sheets(SHT).Cells(31, A) = ""
Workbooks(CHG).Sheets(SHT).Cells(32, A) = ""
End If
Suite27:
Next
For A = 3 To 26 'colonne C à Z
If Workbooks(CHG).Sheets(SHT).Cells(34, A) <> Workbooks(BOE).Sheets(SHT).Cells(13, A) Then
If Workbooks(CHG).Sheets(SHT).Cells(27, A).Interior.Color = RGB(255, 255, 255) Then
GoTo Suite34
End If
Workbooks(CHG).Sheets(SHT).Cells(38, A).Interior.ColorIndex = 3
Workbooks(CHG).Sheets(SHT).Cells(39, A).Interior.ColorIndex = 3
Workbooks(CHG).Sheets(SHT).Cells(38, A) = ""
Workbooks(CHG).Sheets(SHT).Cells(39, A) = ""
ElseIf Workbooks(CHG).Sheets(SHT).Cells(34, A).Interior.ColorIndex = Workbooks(CHG).Sheets(SHT).Cells(34, A - 1).Interior.ColorIndex And Workbooks(CHG).Sheets(SHT).Cells(38, A - 1).Interior.ColorIndex = 3 Then
Workbooks(CHG).Sheets(SHT).Cells(38, A).Interior.ColorIndex = 3
Workbooks(CHG).Sheets(SHT).Cells(39, A).Interior.ColorIndex = 3
Workbooks(CHG).Sheets(SHT).Cells(38, A) = ""
Workbooks(CHG).Sheets(SHT).Cells(39, A) = ""
End If
Suite34:
Next
'Etc........... jusqu'à la dernière ligne à vérifier.
End SubS'il y a une solution plus simple, je prends.