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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
| Option Explicit
Option Compare Text
Sub verifier()
'*************************************************************************************************************************
' Déclarations
'*************************************************************************************************************************
Dim fso As Scripting.FileSystemObject
Dim SourceFolder As Scripting.Folder
Dim FileItem As Scripting.File
Dim feuille As Worksheet
Dim feuilleCRAH As Worksheet
Dim wb As Workbook
Dim oWin As Window
Dim NomFeuille As String, NomFeuille1 As String
Dim NomRessource As String, NomRessource1 As String, NomRessource2 As String
Dim PrenomRessource As String
Dim Repertoire As String
Dim NomFichier As String
Dim Chemin As String
Dim DateCrah As Variant, DateCRAH1 As Variant
Dim DateRMA As Variant, DateRMA1 As Variant
Dim ColCRAH As Long, DerColCRAH As Long
Dim ColRMA As Long, DerColRMA As Long
Dim LigRMA As Long
Dim ValCelRMA As Double, ValCelRMA1 As Double
Dim SommeRma As Double
Dim SommeCrah As Double, SommeCRAH1 As Double
'*************************************************************************************************************************
' Traitements
'*************************************************************************************************************************
Repertoire = Sheets("Parametres").Range("B" & 1).Value
Set fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = fso.GetFolder(Repertoire)
'boucle sur toutes les feuilles du classeur
For Each feuille In Application.ActiveWorkbook.Worksheets
'recuperer le nom de la ressource a partir du nom de la feuille CRAH, et enlever les espaces
NomFeuille1 = feuille.Name
NomFeuille = Replace(NomFeuille1, " ", "")
Set feuilleCRAH = Sheets(NomFeuille1)
'boucle sur tous les RMA
For Each FileItem In SourceFolder.Files
'recuperer
NomFichier = FileItem.Name
Chemin = Repertoire & NomFichier
'ouvrir les RMA
'Workbooks.Open (Chemin)
Set wb = Workbooks.Open(Chemin)
For Each oWin In wb.Windows
oWin.Visible = False
Next oWin
'recuperer les noms des ressources des RMA, en enlevant les espaces et les '-'
NomRessource1 = Workbooks(NomFichier).Worksheets("Feuil1").Range("B" & 3).Value
NomRessource2 = Replace(NomRessource1, " ", "")
NomRessource = Replace(NomRessource2, "-", "")
'recuperer les prenoms des ressources des RMA
PrenomRessource = Workbooks(NomFichier).Worksheets("Feuil1").Range("B" & 2).Value
'recuperer la derniere colonne du RMA
DerColRMA = Workbooks(NomFichier).Worksheets("Feuil1").Cells(7, 4).End(xlToRight).Column
'tester si le nom du RMA et CRAH sont egaux
If NomFeuille = NomRessource Then
'recuperer la derniere colonne non vide du CRAH
DerColCRAH = feuilleCRAH.Cells(2, 3).End(xlToRight).Column
'boucle les dates du CRAH
For ColCRAH = 4 To DerColCRAH - 4
DateCRAH1 = feuilleCRAH.Cells(2, ColCRAH).Value
DateCrah = Right(DateCRAH1, 2)
'Boucle sur les dates du RMA
For ColRMA = 4 To DerColRMA
feuilleCRAH.Activate
DateRMA1 = Workbooks(NomFichier).Worksheets("Feuil1").Cells(7, ColRMA).Value
'recuperer la date du RMA a travers la fonction tester
DateRMA = tester(DateRMA1)
'tester si la date du CRAH et du RMA sont egaux
If DateCrah = DateRMA Then
If Workbooks(NomFichier).Worksheets("Feuil1").Cells(7, ColRMA).Interior.ColorIndex = 6 Then
Else
SommeRma = 0
For LigRMA = 9 To 28
If Workbooks(NomFichier).Worksheets("Feuil1").Cells(LigRMA, ColRMA).Value <> " " Then
ValCelRMA1 = Workbooks(NomFichier).Worksheets("Feuil1").Cells(LigRMA, ColRMA).Value
ValCelRMA = Replace(ValCelRMA1, " ", "")
SommeRma = SommeRma + ValCelRMA
End If
Next LigRMA
SommeCRAH1 = feuilleCRAH.Cells(50, ColCRAH).Value
SommeCrah = Replace(SommeCRAH1, " ", "")
If SommeRma = SommeCrah Then
'ne rien faire
Else
'appeller la fonction creer, pour creer le nouveau classeur ou le remplir s'il existe deja
Call creer(NomRessource1, PrenomRessource, DateCRAH1, SommeCrah, SommeRma)
End If
End If
End If
Next ColRMA
Next ColCRAH
End If
'fermer le RMA
Workbooks(NomFichier).Close savechanges:=False
Next
Next feuille
End Sub |
Partager