Option Explicit
Rem. Chaque matin:
'bon, on va supposer que c'est à chaque ouverture
Private Sub Workbook_Open()
Dim RgT As Range, N As Long, C As Long, FeuiR As Worksheet
Rem. 1) Vérifier que le tableau ne fasse pas plus de 1000 lignes. Aviser si plus de 1000 lignes.
Set RgT = Feuil1.[H8].CurrentRegion
Set RgT = Range(Feuil1.Rows(8), RgT.Rows(RgT.Rows.Count))
If RgT.Rows.Count > 1000 Then MsgBox "Le tableau comporte plus de 1000 ligne", vbInformation, "Ouverture classeur"
Rem. 2) Contrôle de la colonne H dans le premier onglet du fichier. Il ne doit y avoir que 5 types de valeurs (P1, P2, P3,P4,P5). Aviser si autres références.
' Résolu par mise en forme conditionnelle avec formule =ESTERREUR(CHERCHE(H8;"P1•P2•P3•P4•P5"))'
Rem. 3) Vérifier les dates des colonne J, M et N. Remplacer les cellules contenant la valeur "00/01/1900" par celle de la cellule correspondante de la colonne I (Date Mini).
For N = 1 To 3
C = Choose(N, 10, 13, 14)
RgT.Columns(250).FormulaR1C1 = "=IF(OR(NOT(ISNUMBER(RC" & C & ")),RC" & C & "=0),RC9,RC" & C & ")"
RgT.Columns(C).Value = RgT.Columns(250).Value
Next N
RgT.Columns(250).ClearContents
Rem. Si cellule de la colonne M est non vide alors mettre "TA" dans la cellule correspondante de la colonne H "Période" de cette feuille de calcul.
' PAS COMPRIS CAR CONTIENT UNE DATE
Rem. 4) Créer un nouvel onglet pour chaque point de vente (à partir de la colonne O).
' Il peut y avoir plusieurs dizaines de sites. Chaque nouvel onglet reprend les colonnes de A à N.
' On ajoute la colonne présente dans l'onglet reprenant les informations du site.
For C = 15 To 256
If RgT(0, C).Value = "" Then Exit For
Set FeuiR = Worksheets.Add
FeuiR.Name = RgT(0, C).Value
Feuil1.Columns(1).Resize(, 14).Copy FeuiR.Columns(1)
Feuil1.Columns(C).Copy FeuiR.Columns(15)
Next C
End Sub