Application.ScreenUpdating = False: Application.Calculation = xlManual: Application.EnableEvents = False ' ca va aller plus vite ainsi
Range("DONNEES[[N°OF]:[ALLOCATION?]]").ClearFormats ' supprime les mises en forme
Fin = Feuil1.Cells(5, Cells.Columns.Count).End(xlToLeft).Column 'nb de colonne en feuil1
nb8 = Feuil8.Range("A65536").End(xlUp).Row: 'nb ligne tableau feuil8
Dim jour As Variant
For R = 4 To Feuil1.Cells(5, Fin).End(xlToLeft).Column ' Sur toute les colonnes je cherche la colonne correspondante date du jour
If Feuil1.Cells(1, R).Value = CDate(Year(Now) & "/" & Month(Now) & "/" & Day(Now)) Then jour = R: Exit For ''date du jour
Next R
Feuil8.Range("C2").ListObject.QueryTable.Refresh BackgroundQuery:=False ' Maj donnée feuil8
Feuil8.Range("DONNEES[[CHARGE ANNEE]:[TEXTE]]").Cut Destination:=Feuil8.Range("S2") 'je dois réorganiser mes colonnes issues de la macro
Feuil1.Activate 'je suis obilgé d'activer la feuil1 pour ne pas avoir d'erreur 'hypertexte
Set plage = Feuil1.Range(Cells(6, jour), Cells(214, Feuil1.Cells(5, Fin).End(xlToLeft).Column)) ' ma position de départ de mon tableau en ligne et colonne (i = ligne) et j = colonne
ncol = plage.Columns.Count
Tablo = plage
Dim Tablo2Ref As Range, Tablo2Val, Tablo2Cible
Set Tablo2Ref = Feuil8.Range(Feuil8.Cells(2, 1), Feuil8.Cells(nb8, 18)) ' mon tableau en feuil8 de la colonne 1 à 18
Tablo2Val = Tablo2Ref.Value
Tablo2Cible = Feuil8.Range(Feuil8.Cells(2, 1), Feuil8.Cells(nb8, 1)).Value
For lig8 = LBound(Tablo2Val, 1) To UBound(Tablo2Val, 1) 'MsgBox "ma cible " & Feuil8.Cells(lig8 + 1, 1).Value ' de ma cellule début tableau feuil8 à la fin
For i = 1 To UBound(Tablo) Step 8
For J = 1 To ncol
If UCase(Tablo(i, J)) = Tablo2Cible(lig8, 1) Then
Tablo2Val(lig8, 15) = Feuil1.Cells(1, J + (jour - 1)).MergeArea(1).Value ' date début planning comment avoir la date sans reculer !
dur = Application.WorksheetFunction.Round((Feuil8.Cells(lig8 + 1, 7).Value * 1.1), 0) 'durée de mon of pour le décalage des colonnes
Tablo2Val(lig8, 16) = Feuil1.Cells(1, J + (jour - 1) + dur).MergeArea(1).Value ' date fin planning comment avoir la date sans reculer !
Feuil8.Hyperlinks.Add Anchor:=Feuil8.Cells(lig8 + 1, 1), Address:="", SubAddress:="Planning!" & Feuil8.Cells(i + (6 - 1), J + (jour - 1)).Address ' lien hypertetxe
Tablo2Val(lig8, 18) = "PLANIFIE": 'j'écris sur la colonne n°18
'ctrl allocation
If Feuil8.Cells(lig8 + 1, 31).Value >= 3 Then ' si sur la feuil8 des allocations je toruve une valeur de >=3
Feuil1.Cells(i + (6 - 1), J + (jour - 1)).Interior.Color = RGB(0, 255, 204): Feuil1.Cells(i + (6 - 1), J + (jour - 1)).Font.Bold = True: Exit For ' je colore en feuil1 puis je sort
Else 'colorie sur la feuille planning et mise en gras
Feuil1.Cells(i + (6 - 1), J + (jour - 1)).Interior.Color = RGB(255, 255, 255): Feuil1.Cells(i + (6 - 1), J + (jour - 1)).Font.Bold = False: Exit For 'remet a blanc et pas gras
End If
End If
Next J
'If Tablo2Val(lig8, 1) = "PLANIFIE" Then Exit For
Next i
Next lig8
Tablo2Ref.Value = Tablo2Val
Application.ScreenUpdating = True: Application.Calculation = xlManual: Application.EnableEvents = True