Bonjour,
Je voulais créer une macro sur un fichier Excel pour afficher 4 Onglets.
Les 3 Onglets s'affichent tan disque l'onglet HOISTORIQUES INCIDENTS que je souhaite ajouter ne s'affiche.
Merci de votre aide.
VOICI LE CODE:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
Sub FichierIncident()
 
'
'1/Suppresion de la dernière ligne du fichier de base
'
Rows(Range("A" & Rows.Count).End(xlUp).Row).Delete
 
'------------------------------------------------------------------------------------------------------------------
'
'2/Suppresion des trois premières lignes du fichier des incidents de base
'
For i = 3 To 1 Step -1
   Cells(i, 1).EntireRow.Delete
Next
 
'------------------------------------------------------------------------------------------------------------------
'
'3/Création des onglets CRITIQUE/CORE BUSSINESS/DATA MANAGMENT/HISTORIQUES INCIDENTS
'
Sheets.Add(Before:=Worksheets(1)).Name = "CORE BUSINESS"
Sheets.Add(Before:=Worksheets(1)).Name = "DATA MANAGEMENT"
Sheets.Add(Before:=Worksheets(1)).Name = "CRITIQUE"
Sheets.Add(Before:=Worksheets(1)).Name = "HISTORIQUES INCIDENTS"
 
 '------------------------------------------------------------------------------------------------------------------
'
'4/Copier/Coller la première ligne de l'extraction dans les onglets COREBUSSINESS et DATA MANAGMENT. Cette 1ère ligne corresponds à l'en-tête
'
 
Sheets("general_report").Cells(1, 1).EntireRow.Copy Destination:=Sheets("DATA MANAGEMENT").Range("A1")
Sheets("general_report").Cells(1, 1).EntireRow.Copy Destination:=Sheets("CORE BUSINESS").Range("A1")
Sheets("general_report").Cells(1, 1).EntireRow.Copy Destination:=Sheets("CRITIQUE").Range("A1")
Sheets("general_report").Cells(1, 1).EntireRow.Copy Destination:=Sheets("HISTORIQUES INCIDENTS").Range("A1")
 
'------------------------------------------------------------------------------------------------------------------
'
'5/Amélioration de l'affichage
'
 
        '5/a/ Effacer toutes les images de tous les onglets. L'image du fichier de base a été copié sur tous les onglets lors de l'étape 4/
Sheets("DATA MANAGEMENT").DrawingObjects.Delete
Sheets("CORE BUSINESS").DrawingObjects.Delete
Sheets("CRITIQUE").DrawingObjects.Delete
Sheets("HISTORIQUES INCIDENTS").DrawingObjects.Delete
Sheets("general_report").DrawingObjects.Delete
 
  '5/b/ Renvoie à la ligne de toutes tous les colonnes
Sheets("DATA MANAGEMENT").Columns("A:Z").WrapText = True
Sheets("CORE BUSINESS").Columns("A:Z").WrapText = True
Sheets("CRITIQUE").Columns("A:Z").WrapText = True
Sheets("HISTORIQUES INCIDENTS").Columns("A:Z").WrapText = True
 
        '5/c/ Coloration police de la première ligne. ATTENTION :  Non automatisé. En effet, je suppose que je connais dejà le nombre de colonne en mettant "Columns("A:Z")"
Sheets("DATA MANAGEMENT").Columns("A:Z").Font.ColorIndex = 2
Sheets("CORE BUSINESS").Columns("A:Z").Font.ColorIndex = 2
Sheets("CRITIQUE").Columns("A:Z").Font.ColorIndex = 2
Sheets("HISTORIQUES INCIDENTS").Columns("A:Z").Font.ColorIndex = 2
 
        '5/d/ Coloration fond de la première ligne. ATTENTION :  Non automatisé. En, effet je suppose que je connais dejà le nombre de colonne en mettant "Columns("A:N")"
Sheets("DATA MANAGEMENT").Columns("A:N").Interior.Color = RGB(0, 0, 125)
Sheets("CORE BUSINESS").Columns("A:N").Interior.Color = RGB(0, 0, 125)
Sheets("CRITIQUE").Cells(1, 1).EntireRow.Interior.Color = RGB(0, 0, 125)
Sheets("HISTORIQUES INCIDENTS").Cells(1, 1).EntireRow.Interior.Color = RGB(0, 0, 125)
 
 
 
        '5/e/ Ajustation des colonnes selon la taille des colonnes du fichier de base (le "general_report")
        DerCol = Cells(1, Cells.Columns.Count).End(xltoLeft).Column
 
        For i = 1 To DerCol
 
      largeur = Sheets("general_report").Columns(i).ColumnWidth
      Sheets("DATA MANAGEMENT").Columns(i).ColumnWidth = largeur
      Sheets("CORE BUSINESS").Columns(i).ColumnWidth = largeur
      Sheets("CRITIQUE").Columns(i).ColumnWidth = largeur
      Sheets("HISTORIQUES INCIDENTS").Columns(i).ColumnWidth = largeur
 
        Next
 
        '5/f/ Application d'un filtre sur la première ligne
Sheets("DATA MANAGEMENT").Columns("A:N").AutoFilter
Sheets("CORE BUSINESS").Columns("A:N").AutoFilter
Sheets("CRITIQUE").Columns("A:N").AutoFilter
Sheets("HISTORIQUES INCIDENTS").Columns("A:N").AutoFilter
Sheets("general_report").Columns("A:N").AutoFilter
'------------------------------------------------------------------------------------------------------------------
'
'6/GENERATION DES ONGLETS : CRIITIQUE, CORE BUSINESS et DATA MANAGMENT
'
 
    '6/a/Définition de la dernière ligne non vide de l'onglet "general reports"
    Dim DerLign
    DerLign = Sheets("general_report").Range("A" & Rows.Count).End(xlUp).Row
 
    '6/b/ REMPLISSAGE DES ONGLETS "CORE BUSINESS" ET "DATA MANAGEMENT"
    For i = 2 To DerLign
 
        ListeDM = Array("……………………….")
        MaCellule2 = Sheets("general_report").Cells(i, 3).value
        reponse = Application.Match(MaCellule2, ListeDM, 0)
 
        If Application.IsNumber(reponse) Then
                Sheets("general_report").Cells(i, 1).EntireRow.Copy Destination:=Sheets("DATA MANAGEMENT").Range("a65535").End(xlUp).Offset(1, 0)
        Else
                Sheets("general_report").Cells(i, 1).EntireRow.Copy Destination:=Sheets("CORE BUSINESS").Range("a65535").End(xlUp).Offset(1, 0)
        ElseIf
                Sheets("general_report").Cells(i, 1).EntireRow.Copy Destination:=Sheets("HISTORIQUES INCIDENTS").Range("a65535").End(xlUp).Offset(1, 0)
        End If
                Next
 
                '6/c/REMPLISSAGE DE L'ONGLET "CRITIQUE"
 
                For i = 2 To DerLign
                MaCellule3 = Sheets("general_report").Cells(i, 2).value
    FicheCritique = "Critique"
 
                        If MaCellule3 = FicheCritique Then
                                Sheets("general_report").Cells(i, 1).EntireRow.Copy Destination:=Sheets("CRITIQUE").Range("a65535").End(xlUp).Offset(1, 0)
              Next
              '6/c/REMPLISSAGE DE L'ONGLET "HISTORIQUES INCIDENTS"
               For i = 2 To DerLign
                MaCellule4 = Sheets("general_report").Cells(i, 4).value
    FicheCritique = "HISTORIQUES INCIDENTS"
 
                        If MaCellule4 = Fiche"HISTORIQUES INCIDENTS" Then
                                Sheets("general_report").Cells(i, 1).EntireRow.Copy Destination:=Sheets("HISTORIQUES INCIDENTS").Range("a65535").End(xlUp).Offset(1, 0)
                  End If
                Next i
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'
'7/ Suprpresion de l'onglet de base "general_report"
'
 
 Application.DisplayAlerts = False
Worksheets("general_report").Delete
Application.DisplayAlerts = True
 
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'
'8/ Enregistrement du fichier automtiqement
'
Dim Chemin As String, NomFichier As String
 
Chemin = "S:\50-CESD-PRIV\15-DAAF\10-AccountingSuppor…………….\"
NomFichier = "FichierDesIncidents_" & Day(Now) & Month(Now) & Year(Now) & "_" & Hour(Now) & "h" & Minute(Now) & "m" & Second(Now) & "s"
'NomFichier = "FichierDesIncidents_" & Now
ThisWorkbook.SaveAs Chemin & NomFichier, FileFormat:=52, CreateBackup:=False
 
 
End Sub