Bonjour,
J'ai un planning dont les feuilles mensuelles sont créées à partir d'un modèle de 31 jrs, remplis de formule.
Quand je créé un nouveau mois, les WE et les jours fériés ont des mises en forme conditionnelles, mais je voudrais effacer toutes les Formules qui sont positionnées ces jour-là, et je voudrai utiliser une méthode Array d'abord pour apprendre et surtout parceque j'ai une procédure évènement qui ensuite doit effacer toute nouvelle saisie ces jours-là. Or ces 2 procédures ensembles entrainent un temps de réponse trop long pour la création de la feuille.
Conc je voudrais remplacer ma procédure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
'Effacer toutes les formules dans les colonnes de WE & Fériés
    Set Plg = [C5:AG120]
    For Each c In Plg
        If Weekday(Cells(3, c.Column), vbMonday) > 5 or Application.CountIf([FERIES], Cells(3, c.Column) > 0 Then
            c.ClearContents
        End If
    Next c
par une Array du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim x As Long, tb(), y As Long
y = 0
For x = Range("C3") To Range("AG3")
    If WorksheetFunction.Weekday(x, 2) <> 6 And WorksheetFunction.Weekday(x, 2)  and 'FERIES ???' <> 7 Then
'j'enregistre la formule de la cellule correspondante dans la plage [C5:AG120] et "" les WE et Feriés
???
y = y+1
 
ReDim Preserve tb(1 to y)
tb(y) = x
end if
next x
range("C5:AG120").value  = tb
Inutile de préciser que je n'ai jamais fait d'Array et qu'il n'y a pas beaucoup de documentation dans les livres ; heureusement qu'il y a ce site et quelques autres...

Merci de votre aide.