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
| 'Déclaration de variables
'Fichier de compilation
Dim Tool As String 'Nom du fichier
Tool = "tool.xlsm"
Dim Backlog As String 'Feuille de compilation des backlog HoV
Backlog = "BacklogHoV"
Dim EmptyCell As String 'A partir de quelle cellule on cherche la première non vide en partant du bas
EmptyCell = "A200"
Dim NotUpdated As String 'Feuille des builders non mis à jour
NotUpdated = "NotUpdated"
'Structure des builders
Dim Folder As String 'Dossier de stockage des builders
Folder = "C:\Users\NG4CA52\Desktop\test\"
Dim Command As String 'Feuille contenant la semaine en cours
Command = "Command"
Dim BuilderWeek As String 'Cellule contenant la semaine en cours
BuilderWeek = "B4"
Dim Datas As String 'Feuille contenant le numéro de MSN
Datas = "Datas"
Dim MSN As String 'Cellule contenant le numéro de MSN
MSN = "A2"
Dim Status As String 'Feuille contenant la liste des backlog
Status = "Status"
'Liste des builders
Dim classeur1 As String
classeur 1 = "classeur1.xlsm"
'Variables nécessaires à la macro
Dim BacklogRow As String 'ligne contenant le mot Backlog
Dim NextRow As String 'ligne juste après la liste des backlog
Dim CurrentWeek As String 'semaine en cours
CurrentWeek = InputBox("Put Current Week as YY CW XX", "TOP50 Week", "15CWxx")
'Ouvrir le builder
Workbooks.Open (Folder & classeur1), ReadOnly:=True
'Tester si c'est la bonne semaine
Sheets(Command).Select
ActiveSheet.Range(BuilderWeek).Select
If Selection = CurrentWeek Then
'Récupérer le numéro de MSN
Sheets(Datas).Select
ActiveSheet.Range(MSN).Select
Selection.Copy
Windows(Tool).Activate
Sheets(Backlog).Select
ActiveSheet.Range(EmptyCell).End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Rechercher la ligne avec "Backlog"
Windows(classeur1).Activate
Sheets(Status).Select
BacklogRow = ActiveSheet.Cells.Find(What:="backlog", LookAt:=xlPart).Row
'Rechercher la ligne avec "Next 4 weeks forecast"
NextRow = ActiveSheet.Cells.Find(What:="4 weeks", LookAt:=xlPart).Row
'Sélectionner les lignes entre les deux - copier
ActiveSheet.Rows(BacklogRow + 1 & ":" & NextRow - 1).Select
Selection.Copy
'Coller dans un classeur de compilation à la suite de la dernière ligne écrite
Windows(Tool).Activate
Sheets(Backlog).Select
ActiveSheet.Range(EmptyCell).End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Else
'Récupérer le numéro de MSN
Sheets(Datas).Select
ActiveSheet.Range(MSN).Select
Selection.Copy
Windows(Tool).Activate
Sheets(NotUpdated).Select
ActiveSheet.Range(EmptyCell).End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
'Fermer le builder et revenir au classeur de compilation
Windows(classeur1).Activate
Application.CutCopyMode = False
ActiveWorkbook.Close Savechanges:=False
Windows(Tool).Activate
Sheets(Backlog).Select
ActiveSheet.Range("A1").Select |
Partager