Advertisement
darklife06

Extraction péna RP

Oct 22nd, 2021 (edited)
1,423
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VBScript 16.87 KB | None | 0 0
  1. Sub ImportLog()
  2.  
  3. Call RAZ
  4.  
  5. 'Selection du fichier log
  6.  
  7.     nom = ActiveWorkbook.Name
  8.     ChDrive Left(Sheets("Liste Pénalités").Cells(18, 13), InStr(Sheets("Liste Pénalités").Cells(18, 13), ":\"))  'Recupération de la lettre du lecteur
  9.    ChDir Sheets("Liste Pénalités").Cells(18, 13)                                                                'Recuperation du lien défini
  10.    a = Application.GetOpenFilename("Log Files (*.log), *.log")
  11.    
  12.     Select Case TypeName(a)
  13.     Case Is = "Boolean"
  14.         Exit Sub
  15.     Case Else
  16.     Workbooks.OpenText Filename:=a, Origin:=xlMSDOS, _
  17.         StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
  18.         ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
  19.         , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
  20.         TrailingMinusNumbers:=True
  21.     End Select
  22.  
  23. 'Import des données
  24.  
  25.     nom2 = ActiveWorkbook.Name
  26.     Columns("A:B").Copy
  27.     Windows(nom).Activate
  28.     Sheets("logs").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  29.  
  30. Application.CutCopyMode = False
  31.  
  32.  
  33.     Windows(nom).Activate
  34.     Workbooks(nom2).Close
  35.  
  36. 'Tri des logs
  37. 'Sheets("Liste Pénalités").Activate
  38.  
  39.     i = 1       'init compteur ligne logs
  40.    j = 10       'init incrément ligne liste péna
  41.    k = j       'init DT
  42.    l = j       'init DSQ
  43.    
  44.     Do While Sheets("logs").Cells(i, 1) <> 0           'Boucle de check toutes les lignes du log
  45.        '------------------Nom du serveur--------------
  46.        If Sheets("logs").Cells(i, 1).Value Like "*Server name:*" Then                             'récupération du nom du serv
  47.            Sheets("Liste Pénalités").Cells(2, 3).Value = Mid(Sheets("logs").Cells(i, 1), InStr(Sheets("logs").Cells(i, 1), ": Server name:") + 14, 100)        'hachage du nom du serveur
  48.            
  49.         '------------------Nom de la course--------------
  50.        ElseIf Sheets("logs").Cells(i, 1).Value Like "*: Name:*" Then                             'récupération du nom du serv
  51.            Sheets("Liste Pénalités").Cells(4, 3).Value = Mid(Sheets("logs").Cells(i, 1), InStr(Sheets("logs").Cells(i, 1), ": Name:") + 7, 100)        'hachage du nom de la course
  52.            
  53.         '------------------Nom du circuit--------------
  54.        ElseIf Sheets("logs").Cells(i, 1).Value Like "*: Track:*" Then                             'récupération du nom du circuit
  55.            Sheets("Liste Pénalités").Cells(5, 3).Value = Mid(Sheets("logs").Cells(i, 1), InStr(Sheets("logs").Cells(i, 1), ": Track:") + 8, 100)       'hachage du nom du circuit
  56.            
  57.         '------------------Pénalité de course--------------
  58.        ElseIf Sheets("logs").Cells(i, 1).Value Like "*RP_seconds*penalty*to*final*time:*" Then                             'Listing des temps de péna
  59.            'Sheets("Liste Pénalités").Cells(j, 1).Value = Sheets("logs").Cells(i, 1)                                'recopie de la ligne log correspondante (opt.)
  60.            Sheets("Liste Pénalités").Cells(j, 2).Value = Mid(Sheets("logs").Cells(i, 1), _
  61.                                     InStr(Sheets("logs").Cells(i, 1), "Driver ") + 7, _
  62.                                    InStr(Sheets("logs").Cells(i, 1), " - GUID") - InStr(Sheets("logs").Cells(i, 1), "Driver ") - 7)                      'hachage du nom du pilote
  63.            Sheets("Liste Pénalités").Cells(j, 3).Value = Mid(Sheets("logs").Cells(i, 1), InStr(Sheets("logs").Cells(i, 1), "final time: ") + 12, 10)   'hachage du temps de péna
  64.            Sheets("Liste Pénalités").Cells(j, 3).HorizontalAlignment = xlRight         'alignement de la cellule a droite
  65.            j = j + 1       'incrément ligne liste péna
  66.            
  67.         '------------------Pénalité après course--------------
  68.        ElseIf Sheets("logs").Cells(i, 1).Value Like "*RP_seconds*penalty*for*penalties*not*taken:*" Then                 'Listing temps de péna pour péna pas prises
  69.            'Sheets("Liste Pénalités").Cells(j, 1).Value = Sheets("logs").Cells(i, 1)                                'recopie de la ligne log correspondante (opt.)
  70.            Sheets("Liste Pénalités").Cells(j, 2).Value = Mid(Sheets("logs").Cells(i, 1), _
  71.                                     InStr(Sheets("logs").Cells(i, 1), "Driver ") + 7, _
  72.                                     InStr(Sheets("logs").Cells(i, 1), " - GUID") - InStr(Sheets("logs").Cells(i, 1), "Driver ") - 7)                      'hachage du nom du pilote
  73.            Sheets("Liste Pénalités").Cells(j, 3).Value = Mid(Sheets("logs").Cells(i, 1), InStr(Sheets("logs").Cells(i, 1), "not taken: ") + 11, 10)    'hachage du temps de péna"
  74.            Sheets("Liste Pénalités").Cells(j, 3).HorizontalAlignment = xlRight         'alignement de la cellule a droite
  75.            j = j + 1       'incrément ligne liste péna
  76.            
  77.         '------------------Drivethrough--------------
  78.        ElseIf Sheets("logs").Cells(i, 1).Value Like "*Msg:*RP_Drive*through*for*" Then                 'Listing DT
  79.            'Sheets("Liste Pénalités").Cells(k, 4).Value = Sheets("logs").Cells(i, 1)                                'recopie de la ligne log correspondante (opt.)
  80.            Sheets("Liste Pénalités").Cells(k, 5).Value = Mid(Sheets("logs").Cells(i, 1), _
  81.                                     InStr(Sheets("logs").Cells(i, 1), "Driver ") + 7, _
  82.                                     InStr(Sheets("logs").Cells(i, 1), " - GUID") - InStr(Sheets("logs").Cells(i, 1), "Driver ") - 7)                      'hachage du nom du pilote
  83.            DTPilot = Sheets("Liste Pénalités").Cells(k, 5)     'Recuparation nom Pilote
  84.            Call VerifDT(DTPilot, k)                    'appel fonction de vérif si DT fait ou non
  85.            k = k + 1       'incrément ligne DT
  86.        
  87.         '------------------Disqualifié--------------
  88.        ElseIf Sheets("logs").Cells(i, 1).Value Like "*RP_Disqualified!*" Then                       'Listing DSQ
  89.            'Sheets("Liste Pénalités").Cells(l, 7).Value = Sheets("logs").Cells(i, 1)                                'recopie de la ligne log correspondante (opt.)
  90.            Sheets("Liste Pénalités").Cells(l, 8).Value = Mid(Sheets("logs").Cells(i, 1), _
  91.                                     InStr(Sheets("logs").Cells(i, 1), "Driver ") + 7, _
  92.                                     InStr(Sheets("logs").Cells(i, 1), " - GUID") - InStr(Sheets("logs").Cells(i, 1), "Driver ") - 7)                      'hachage du nom du pilote
  93.            Sheets("Liste Pénalités").Cells(l, 9).Value = Mid(Sheets("logs").Cells(i, 1), InStr(Sheets("logs").Cells(i, 1), "Msg: RP_Disqualified! ") + 22, 100)    'hachage du motif
  94.            Sheets("Liste Pénalités").Cells(l, 9).HorizontalAlignment = xlRight         'alignement de la cellule a droite
  95.            l = l + 1       'incrément ligne DSQ
  96.        End If
  97.        
  98.     i = i + 1               'incrément lecture ligne log
  99.    Loop
  100.  
  101. Call MiseEnPageFinale(j, k, l)
  102.  
  103. 'REINIT POS CURSEUR
  104. Sheets("logs").Select
  105. Sheets("logs").Cells(1, 1).Select
  106. Sheets("Liste Pénalités").Select
  107. Sheets("Liste Pénalités").Cells(2, 3).Select
  108.  
  109. End Sub
  110. Function VerifDT(DTPilot, k)
  111.     ivDT = 1                    'initialisation du compteur pour les lignes de log
  112.    Do While Sheets("logs").Cells(ivDT, 1) <> 0
  113.         If Sheets("logs").Cells(ivDT, 1).Value Like "*RP_Drive*through*taken*" And InStr(Sheets("logs").Cells(ivDT, 1), DTPilot) > 0 Then                           'Recherche match ligne péna prise + pilote correspondant
  114.            With Sheets("Liste Pénalités").Cells(k, 6)                                                                                'si péna faite : V + fond vert
  115.            .Value = "V"
  116.             .Interior.Color = 5296274
  117.             .HorizontalAlignment = xlCenter
  118.             End With
  119.             Exit Do
  120.         End If
  121.     ivDT = ivDT + 1
  122.     Loop
  123.     If IsEmpty(Sheets("Liste Pénalités").Cells(k, 6)) Then                          'si péna pas faite : X + fond rouge
  124.            With Sheets("Liste Pénalités").Cells(k, 6)
  125.             .Value = "X"
  126.             .HorizontalAlignment = xlCenter
  127.             .Interior.Color = 255
  128.             End With
  129.     End If
  130.    
  131. '--------------To do-----------
  132. '- Addition des temps si pena course + après course (si dans un monde il y a)
  133. '- Finir de commenter le code car dans 6mois je comprendrai plus rien à ce que j'ai fait
  134. '- Detail des pénalités
  135.  
  136. End Function
  137. Sub RAZ()
  138.  
  139.     Sheets("logs").Columns("A").ClearContents
  140.    
  141.     Sheets("Liste Pénalités").Select
  142.     Chdef = Sheets("Liste Pénalités").Cells(18, 13)     'Conservation du Chemin par défaut
  143.    With Sheets("Liste Pénalités").Columns("A:M")
  144.                 .UnMerge
  145.                 .Borders.LineStyle = xlLineStyleNone
  146.                 .ClearContents                     'Suppression du contenu des cellules
  147.                .Interior.Pattern = xlNone         'Supprime le remplissage
  148.                .HorizontalAlignment = xlLeft
  149.                 .VerticalAlignment = xlCenter
  150.                 With .Font
  151.                 .ThemeColor = xlThemeColorLight1
  152.                 .TintAndShade = 0
  153.                 .Name = "Calibri"
  154.                 .Size = 11
  155.                 End With
  156.                
  157.     End With
  158.    
  159.     Rows("1:1000").RowHeight = 15.75
  160.     Columns("A").ColumnWidth = 12
  161.     Columns("B").ColumnWidth = 18
  162.     Columns("C").ColumnWidth = 17
  163.     Columns("D").ColumnWidth = 14
  164.     Columns("E").ColumnWidth = 18
  165.     Columns("F").ColumnWidth = 16
  166.     Columns("G").ColumnWidth = 11
  167.     Columns("H").ColumnWidth = 20
  168.     Columns("I").ColumnWidth = 35
  169.     Columns("J").ColumnWidth = 11
  170.     Columns("K").ColumnWidth = 11
  171.     Columns("L").ColumnWidth = 11
  172.     Columns("M").ColumnWidth = 50
  173.    
  174.    
  175.    
  176. Call INIT(Chdef)
  177.  
  178. 'REINIT POS CURSEUR
  179. Sheets("Liste Pénalités").Select
  180. Sheets("Liste Pénalités").Cells(2, 3).Select
  181.  
  182. End Sub
  183.  
  184. Sub INIT(Chdef)
  185.  
  186.     If Chdef = 0 Then             'test du chemin renseigné si vide ou non
  187.        Chdef = "C:\"
  188.     End If
  189.  
  190. Sheets("Liste Pénalités").Cells(18, 13) = Chdef
  191.  
  192. '---------Entête---------OK
  193. With Range(Sheets("Liste Pénalités").Cells(2, 3), Sheets("Liste Pénalités").Cells(3, 11))
  194.                 .Merge
  195.                 .HorizontalAlignment = xlCenter
  196.                 .Borders.LineStyle = xlContinuous
  197.                 .Borders.Weight = xlMedium
  198.                 .Font.Size = 18
  199.                 .Font.Bold = True
  200. End With
  201. With Range(Sheets("Liste Pénalités").Cells(4, 3), Sheets("Liste Pénalités").Cells(4, 11))
  202.                 .Merge
  203.                 .HorizontalAlignment = xlCenter
  204.                 .Borders.LineStyle = xlContinuous
  205.                 .Borders.Weight = xlMedium
  206. End With
  207. With Range(Sheets("Liste Pénalités").Cells(5, 3), Sheets("Liste Pénalités").Cells(5, 11))
  208.                 .Merge
  209.                 .HorizontalAlignment = xlCenter
  210.                 .Borders.LineStyle = xlContinuous
  211.                 .Borders.Weight = xlMedium
  212. End With
  213. '---------Chemin par défaut---------OK
  214. With Range(Sheets("Liste Pénalités").Cells(18, 11), Sheets("Liste Pénalités").Cells(18, 12))
  215.                 .Merge
  216.                 .Value = "Chemin par défaut"
  217.                 .Borders.LineStyle = xlContinuous
  218. End With
  219. With Sheets("Liste Pénalités").Cells(18, 13)
  220.                 .Value = Chdef
  221.                 .Borders.LineStyle = xlContinuous
  222. End With
  223. '---------Temps de péna---------OK
  224. With Range(Sheets("Liste Pénalités").Cells(8, 2), Sheets("Liste Pénalités").Cells(8, 3))
  225.                 .Merge
  226.                 .HorizontalAlignment = xlCenter
  227.                 .Borders.LineStyle = xlContinuous
  228.                 .Borders.Weight = xlMedium
  229.                 .Value = "Temps de pénalité"
  230.                 .Interior.Color = 49407
  231. End With
  232. With Sheets("Liste Pénalités").Cells(9, 2)
  233.                 .Value = "Pilote"
  234.                 .Interior.ThemeColor = xlThemeColorAccent1
  235.                 .Interior.TintAndShade = 0.399975585192419
  236. End With
  237. With Sheets("Liste Pénalités").Cells(9, 3)
  238.                 .Value = "Temps supp."
  239.                 .Interior.ThemeColor = xlThemeColorAccent1
  240.                 .Interior.TintAndShade = 0.399975585192419
  241.                 .HorizontalAlignment = xlRight
  242. End With
  243. With Range(Sheets("Liste Pénalités").Cells(9, 2), Sheets("Liste Pénalités").Cells(9, 3))
  244.                 .Borders.LineStyle = xlContinuous
  245.                 .Borders.Weight = xlMedium
  246.                 .Borders(xlInsideVertical).Weight = xlThin
  247. End With
  248. Sheets("Liste Pénalités").Cells(10, 2) = "None"
  249. With Range(Sheets("Liste Pénalités").Cells(10, 2), Sheets("Liste Pénalités").Cells(10, 3))
  250.                 .Borders.LineStyle = xlContinuous
  251.                 .Borders.Weight = xlMedium
  252.                 .Borders(xlInsideVertical).Weight = xlThin
  253. End With
  254. '---------DriveThrough---------OK
  255. With Range(Sheets("Liste Pénalités").Cells(8, 5), Sheets("Liste Pénalités").Cells(8, 6))
  256.                 .Merge
  257.                 .HorizontalAlignment = xlCenter
  258.                 .Borders.LineStyle = xlContinuous
  259.                 .Borders.Weight = xlMedium
  260.                 .Value = "DriveThrough"
  261.                 .Interior.Color = 49407
  262. End With
  263. With Sheets("Liste Pénalités").Cells(9, 5)
  264.                 .Value = "Pilote"
  265.                 .Interior.ThemeColor = xlThemeColorAccent1
  266.                 .Interior.TintAndShade = 0.399975585192419
  267. End With
  268. With Sheets("Liste Pénalités").Cells(9, 6)
  269.                 .Value = "Effectué"
  270.                 .Interior.ThemeColor = xlThemeColorAccent1
  271.                 .Interior.TintAndShade = 0.399975585192419
  272.                 .HorizontalAlignment = xlRight
  273. End With
  274. With Range(Sheets("Liste Pénalités").Cells(9, 5), Sheets("Liste Pénalités").Cells(9, 6))
  275.                 .Borders.LineStyle = xlContinuous
  276.                 .Borders.Weight = xlMedium
  277.                 .Borders(xlInsideVertical).Weight = xlThin
  278. End With
  279. Sheets("Liste Pénalités").Cells(10, 5) = "None"
  280. With Range(Sheets("Liste Pénalités").Cells(10, 5), Sheets("Liste Pénalités").Cells(10, 6))
  281.                 .Borders.LineStyle = xlContinuous
  282.                 .Borders.Weight = xlMedium
  283.                 .Borders(xlInsideVertical).Weight = xlThin
  284. End With
  285. '--------------DSQ-------------OK
  286. With Range(Sheets("Liste Pénalités").Cells(8, 8), Sheets("Liste Pénalités").Cells(8, 9))
  287.                 .Merge
  288.                 .HorizontalAlignment = xlCenter
  289.                 .Borders.LineStyle = xlContinuous
  290.                 .Borders.Weight = xlMedium
  291.                 .Value = "Disqualifié"
  292.                 .Interior.Color = 49407
  293. End With
  294. With Sheets("Liste Pénalités").Cells(9, 8)
  295.                 .Value = "Pilote"
  296.                 .Interior.ThemeColor = xlThemeColorAccent1
  297.                 .Interior.TintAndShade = 0.399975585192419
  298. End With
  299. With Sheets("Liste Pénalités").Cells(9, 9)
  300.                 .Value = "Raison"
  301.                 .Interior.ThemeColor = xlThemeColorAccent1
  302.                 .Interior.TintAndShade = 0.399975585192419
  303.                 .HorizontalAlignment = xlRight
  304. End With
  305. With Range(Sheets("Liste Pénalités").Cells(9, 8), Sheets("Liste Pénalités").Cells(9, 9))
  306.                 .Borders.LineStyle = xlContinuous
  307.                 .Borders.Weight = xlMedium
  308.                 .Borders(xlInsideVertical).Weight = xlThin
  309. End With
  310. Sheets("Liste Pénalités").Cells(10, 8) = "None"
  311. With Range(Sheets("Liste Pénalités").Cells(10, 8), Sheets("Liste Pénalités").Cells(10, 9))
  312.                 .Borders.LineStyle = xlContinuous
  313.                 .Borders.Weight = xlMedium
  314.                 .Borders(xlInsideVertical).Weight = xlThin
  315. End With
  316. End Sub
  317.  
  318. Sub MiseEnPageFinale(j, k, l)
  319.  
  320. Sheets("Liste Pénalités").Select
  321. With Range(Sheets("Liste Pénalités").Cells(10, 2), Sheets("Liste Pénalités").Cells(j - 1, 3))
  322.                 .Borders.LineStyle = xlContinuous
  323.                 .Borders.Weight = xlMedium
  324.                 .Borders(xlInsideVertical).Weight = xlThin
  325.                 .Borders(xlInsideHorizontal).Weight = xlThin
  326. End With
  327. With Range(Sheets("Liste Pénalités").Cells(10, 5), Sheets("Liste Pénalités").Cells(k - 1, 6))
  328.                 .Borders.LineStyle = xlContinuous
  329.                 .Borders.Weight = xlMedium
  330.                 .Borders(xlInsideVertical).Weight = xlThin
  331.                 .Borders(xlInsideHorizontal).Weight = xlThin
  332. End With
  333. With Range(Sheets("Liste Pénalités").Cells(10, 8), Sheets("Liste Pénalités").Cells(l - 1, 9))
  334.                 .Borders.LineStyle = xlContinuous
  335.                 .Borders.Weight = xlMedium
  336.                 .Borders(xlInsideVertical).Weight = xlThin
  337.                 .Borders(xlInsideHorizontal).Weight = xlThin
  338. End With
  339.  
  340. 'Ajout "+ Xs" sur pena
  341. m = 10
  342.  
  343.     Do While m < j
  344.     If Sheets("Liste Pénalités").Cells(m, 3) <> 0 Then
  345.         Sheets("Liste Pénalités").Cells(m, 3) = "+ " & Sheets("Liste Pénalités").Cells(m, 3) & "s"
  346.     End If
  347.        
  348.     m = m + 1
  349.    
  350.     Loop
  351.    
  352.  
  353.  
  354. End Sub
  355.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement